【发布时间】:2012-01-01 03:44:21
【问题描述】:
我想匹配整个“单词”——一个以数字字符开头并且可能包含特殊字符但不以 '%' 结尾的单词。
匹配这些:
- 112(整数)
- 10-12(范围)
- 11/2(分数)
- 11.2(十进制数)
- 1,200(千位分隔符)
但不是
- 12%(百分比)
- A38(以字母字符开头的单词)
我试过这些正则表达式:
(\b\p{N}\S)*)
但在“12%”中返回“12%”
(\b\p{N}(?:(?!%)\S)*)
但在“12%”中返回“12”
我可以对忽略% 的\S 术语进行例外处理吗?
还是必须做其他事情?
我将在 PHP 中使用它,但您可以随意编写,我会将其转换为 PHP。
【问题讨论】:
-
这些数字是否出现在某些上下文中?周围的空间等?具体来说,您为什么使用尾随
\S(表示非空格)?
标签: php regex numbers word match