Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/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_C# 4.0 - Fatal编程技术网

.net 或者改变单词边界的行为

.net 或者改变单词边界的行为,.net,regex,c#-4.0,.net,Regex,C# 4.0,在下面,第一个调试返回“unsbuscribe”d,第二个返回unsbuscribe”d。区别在于“领先” 我想要的是两个都不加删减地返回 修复是“\b((ab)|(['\w]+)\b”,这要归功于GuffaA\b在字母数字字符和非数字字符之间的匹配,因此它在和u之间匹配,但在和之间不匹配 你的交替将第一个正则表达式分成 \b(ab) | (['\w]+)\b 也许你的意思是 \b(?:(ab)|(['\w]+))\b 这是因为第一个正则表达式匹配\b(ab)或(['\w]+)\b

在下面,第一个调试返回“unsbuscribe”d,第二个返回unsbuscribe”d。区别在于“领先”

我想要的是两个都不加删减地返回

修复是“\b((ab)|(['\w]+)\b”,这要归功于Guffa

A
\b
在字母数字字符和非数字字符之间的匹配,因此它在
u
之间匹配,但在
之间不匹配

你的交替将第一个正则表达式分成

\b(ab)   |   (['\w]+)\b
也许你的意思是

\b(?:(ab)|(['\w]+))\b

这是因为第一个正则表达式匹配
\b(ab)
(['\w]+)\b

它将包括在开头的撇号,因为它使用的是第二部分,其中在开头没有单词边界的要求

第二个正则表达式要求在开头有一个单词边界,空格和撇号之间没有单词边界。第一个单词边界位于撇号和字母
u
之间

\b(?:(ab)|(['\w]+))\b