【发布时间】:2013-08-01 21:29:52
【问题描述】:
想匹配单词i.v.不区分大小写
有模式
(?i)\bi\.v\.
但要在末尾有一个单词边界
上述模式失败,因为它匹配
i.v.x
但如果我尝试在末尾添加工作边界
(?i)\bi\.v\.\b
它失败了,因为它甚至不匹配 i.v。
因为我认为\b 正在吃字面意思。作为 。是一个分词
需要\. 贪婪
我想匹配
山姆 i.v.山姆
不想匹配
sam.i.v.
i.v.sam
这里越来越近了
(?i)\bi\.v\.\s$
但它无法找到 i.v.在一行的末尾
【问题讨论】:
-
你的问题是什么?为什么要在表达式末尾添加
\b?当允许匹配时,这个i.v.字符串后面会出现什么? -
@Qtax 因为我只想要一个单词匹配。第一个模式将匹配 i.v.x.
-
你想匹配“i.v.x”,但不匹配“xxi.v.x”?那么“i.v. x”(. 和 x 之间有一个空格)呢?
-
@JimMischel 是的,我想匹配空间。这就是我所说的词的意思。我应该更清楚。
-
你为什么不想找到
sam.i.v.?因为i.v.前面没有空格?那么单词边界是错误的工具。