Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用单词边界的正则表达式,但单词以。(期间)_.net_Regex - Fatal编程技术网

.net 使用单词边界的正则表达式,但单词以。(期间)

.net 使用单词边界的正则表达式,但单词以。(期间),.net,regex,.net,Regex,要匹配wordi.v.不区分大小写 有图案 (?i)\bi\.v\. 但是希望在结尾有一个单词边界 上述模式因匹配而失败 i、 v.x 但是如果我尝试在末尾添加一个工作边界 (?i)\bi\.v\.\b 它失败了,因为它甚至与静脉注射不匹配。 因为我认为\b正在吞噬文字。作为。是一个断字 需要\.贪婪吗 我想匹配 山姆i.v.山姆 不想匹配 sam.i.v. i、 v.sam 这件事越来越近了 (?i)\bi\.v\.\s$ 但它无法在关于当前正则表达式的行末尾找到i.v.: 您不需要在点

要匹配word
i.v.
不区分大小写

有图案

(?i)\bi\.v\.
但是希望在结尾有一个单词边界
上述模式因匹配而失败
i、 v.x

但是如果我尝试在末尾添加一个工作边界

(?i)\bi\.v\.\b
它失败了,因为它甚至与静脉注射不匹配。 因为我认为
\b
正在吞噬文字。作为。是一个断字
需要
\.
贪婪吗

我想匹配
山姆i.v.山姆

不想匹配
sam.i.v.
i、 v.sam

这件事越来越近了

(?i)\bi\.v\.\s$

但它无法在关于当前正则表达式的行末尾找到i.v.

您不需要在点后面加
\b
,因为点不被视为单词字符,但当然需要转义点:

(?i)\bi\.v\.
但是您确实需要在
i
之前执行
\b
,以确保它不匹配,例如
hi

编辑:(根据您的进一步编辑)

试试这个正则表达式:

(?i)\bi\.v\.(?=\s|$)

你似乎对单词边界和贪婪的概念非常困惑。您最好访问以下地址:

  • 什么是贪婪量词:

  • 什么是单词边界:


当你阅读这些解释时,我相信你会认为你的问题是荒谬的

\b
仅匹配字母数字字符和非字母数字字符(或字符串的开头/结尾)。因此,它在
之后不匹配,除非该点后面紧跟着字母数字字符

如果您的目的是确保点后没有非空白字符,则可以使用以下命令指定:

(?!\S)
表示“断言下一个字符不是非空白字符”

这听起来可能有点复杂-为什么是双负?为什么不
(?=\s)
这意味着“断言下一个字符是空白字符”?嗯,有一个微妙的区别:第二个版本需要一个空白字符;这意味着正则表达式将无法匹配字符串的末尾。第一个正则表达式也处理这种情况

如果您通常希望“单词边界”的概念表示“空格分隔”,则还需要替换第一个
\b

(?i)(?<!\S)i\.v\.(?!\S)
(?i)(?

或者正则表达式将匹配您似乎不希望匹配的
sam.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.
前面没有空格?那么单词边界是错误的工具。你最近对你的问题进行的编辑让我有点困惑。”(我写完答案后才看)-我已经对你的问题发表了评论,你能看一下吗?我认为你也需要替换第一个单词边界…我同意。\b匹配?I.v.我不知道它是如何工作的,但我很高兴上帝创造了像你这样的人。谢谢蒂姆。sam I.v.sam失败。sam这是我的问题中的一个示例,我想匹配是的,它会匹配的(很抱歉,我在您之前的评论中没有看到空间
sam
;眼睛疲劳!这里已经很晚了)无论如何,请查看我提供的演示,我相信它适用于您的所有案例。
(?i)(?<!\S)i\.v\.(?!\S)