小编Ger*_*Zah的帖子

正则表达式中带有单词边界"\ b"的美元符号"\ $"(PHP/JavaScript)

我知道在正则表达式中涉及美元符号"$"的问题(这里:在PHP和JavaScript中)已被多次讨论过:是的,我知道我需要在它前面添加一个反斜杠"\"(取决于字符串处理甚至两个),但匹配美元符号的正确方法是"\ $"....去过那里,做到了,工作正常.


但这是我的新问题:美元符号"\ $"旁边标有"\ b"的字边界....我可以在regexpal.com上轻松复制以下示例.

让我们从以下文本开始搜索:

50美元

50美元

50美元

50美元

我的正则表达式应该找到"USD","Dollar"或"$".很容易:让我们试试吧

(USD |美元|\$)

成功:它找到"$","USD"和"Dollar"两种情况,包括"美元".

但是,让我们尝试通过在多项选择之后添加单词边界来跳过"美元":

(USD |美元|\$)\ b

这就是麻烦:"USD"匹配,"Dollar"匹配,"Dollars"被拒绝......但单曲,正确反击(或逃脱)"$"也被拒绝,尽管这只是一秒钟之前.

它与括号内的多项选择无关:试试吧

\ $

\ $\b

而且它是一样的:第一个匹配美元符号,第二个匹配美元符号.


另一个发现:

(美元|美元|\$)\ b

在")"和"\ b"之间有一个空白""实际上有效.但是,在所有情况下(如果应该存在非空白字边界),该解决方法可能不可行.


当涉及单词边界时,似乎拒绝找到逃逸的美元符号.

我很想听听你提出的解决这个谜团的建议. - 提前多多谢谢!

javascript php regex word-boundary dollar-sign

7
推荐指数
1
解决办法
1262
查看次数

标签 统计

dollar-sign ×1

javascript ×1

php ×1

regex ×1

word-boundary ×1