Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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
Regex Perl正则表达式字边界等价_Regex_Perl - Fatal编程技术网

Regex Perl正则表达式字边界等价

Regex Perl正则表达式字边界等价,regex,perl,Regex,Perl,扩展我的基本正则表达式知识,有些事情对我来说还不清楚 如果\b匹配单词边界,则下两个正则表达式具有相同的含义-例如,将匹配相同的字符串 /\bword\b/ /(^|\W)word(\W|$)/m #when multi-line is turned on /(\A|\W)word(\W|\z)/ 询问,因为\b表示单词边界。单词是\w+,因此\b必须是非\w的任何内容,例如它必须是\w或字符串的开头或结尾,或行。还是不?不算捕获组,可能最好在某处使用一些非捕获查找 那两个呢 /word

扩展我的基本正则表达式知识,有些事情对我来说还不清楚

如果\b匹配单词边界,则下两个正则表达式具有相同的含义-例如,将匹配相同的字符串

/\bword\b/
/(^|\W)word(\W|$)/m    #when multi-line is turned on
/(\A|\W)word(\W|\z)/
询问,因为\b表示单词边界。单词是\w+,因此\b必须是非\w的任何内容,例如它必须是\w或字符串的开头或结尾,或行。还是不?不算捕获组,可能最好在某处使用一些非捕获查找

那两个呢

/word\B/
/word\w/
如果单词结尾必须是非单词边界,则表示单词后面必须跟\w单词字符。或否?

\b单词与?word\b与word相同吗\w


\Bword等于?忽略以下模式中的空白。我假设/x用于可读性

相当于

(?<!\w)(?=\w) | (?<=\w)(?!\w)
(?: (?<!\w)(?=\w) | (?<=\w)(?!\w) ) word (?: (?<!\w)(?=\w) | (?<=\w)(?!\w) )
(?<=\w)(?=\w) | (?<!\w)(?!\w)
word (?: (?<=\w)(?=\w) | (?<!\w)(?!\w) )
相当于

(?<!\w)(?=\w) | (?<=\w)(?!\w)
(?: (?<!\w)(?=\w) | (?<=\w)(?!\w) ) word (?: (?<!\w)(?=\w) | (?<=\w)(?!\w) )
(?<=\w)(?=\w) | (?<!\w)(?!\w)
word (?: (?<=\w)(?=\w) | (?<!\w)(?!\w) )
相当于

(?<!\w)(?=\w) | (?<=\w)(?!\w)
(?: (?<!\w)(?=\w) | (?<=\w)(?!\w) ) word (?: (?<!\w)(?=\w) | (?<=\w)(?!\w) )
(?<=\w)(?=\w) | (?<!\w)(?!\w)
word (?: (?<=\w)(?=\w) | (?<!\w)(?!\w) )
相当于

(?<!\w)(?=\w) | (?<=\w)(?!\w)
(?: (?<!\w)(?=\w) | (?<=\w)(?!\w) ) word (?: (?<!\w)(?=\w) | (?<=\w)(?!\w) )
(?<=\w)(?=\w) | (?<!\w)(?!\w)
word (?: (?<=\w)(?=\w) | (?<!\w)(?!\w) )

您所建议的等效词\w略有不同。

只是想知道人们是如何记住和使用所有这些积极/消极的向后看/向前看结构的;回答得很好,谢谢。我的下一个qst可能是关于/?!/失败和/?也失败了…:?=。。。意思是后面跟着?!。。。表示后面不跟.?=和很容易记住,顺便说一句,/^\Wword\W |$/,/^\Wword\W |$/m,/\A | \Wword\W | \z/和/\A | \Wword\W | \z/m都匹配相同的东西。@ikegami hm。。。我又一次理解错了;到目前为止,我认为/some$/与some\n字符串不匹配,但/some$/m会匹配。并且无论m值是多少,/some\z/都不会与some\n字符串匹配。我错过了什么?我应该问一个新问题吗?@ikegami是的,我希望现在知道了!缺少m时,换行符由\W匹配。右侧,换行符不是单词字符。