我正在尝试收集所有破折号以便在分析原始文本数据时使用。我发现Unicode正则表达式
\p{Pd}
应该匹配所有情况,但最终发现这个字符−
并不匹配!关于这个字符的更多信息在这里:https://www.fileformat.info/info/unicode/char/2212/index.htm 这是一个错误还是一个特性?实际上,这并不是有用的东西。
\p{Dash}
属性在所有正则表达式引擎中都不可用。但在JavaScript中,在macOS终端上运行node
,或在Chrome或Safari浏览器中:console.log(/\p{Dash}/u.test("−"));
返回true
。 - Jigorodake/\p{Dash}/u
是无效的。所以,对我来说,实际上仍然使用这个手工制作的表达式来处理所有类似连字符的字符是一个正确的解决方案:[-‐–—‑‒―−-᠆﹘﹣֊⸺⸻]
或者这个更短一些但有一点垃圾的表达式:[\p{Pd}|−]
- Siarhei