我希望能够搜索
/the\b
Run Code Online (Sandbox Code Playgroud)
找到"the"而不是"then".
我也尝试过非常神奇的搜索:
/\vthe\b
Run Code Online (Sandbox Code Playgroud) 如何使用sed搜索和替换整个单词?
干
sed -i 's/[oldtext]/[newtext]/g' <file>
Run Code Online (Sandbox Code Playgroud)
也将替换[oldtext]我不希望它做的部分匹配.
我使用"非常神奇"进行正则表达式搜索(即/\v或%s /\v),但我希望我可以设置一些选项,这样我就不必再在任何地方包含\ v.有没有办法做到这一点?
我想搜索以"abc"开头并以vim中的"xyz"结尾的字符串.
以下是我尝试过的命令:
:1,$g/abc[\w\W]*xyz/
:1,$g/abc\[\\w\\W\]\*xyz/
:1,$g/abc*xyz/
Run Code Online (Sandbox Code Playgroud)
"[\ w\W]*"表示"abc"和"xyz"之间的文本可以是任何字符
"1,$"表示搜索范围是由vim打开的文件中的第1行到最后一行.
我发现了搜索模式
abc[\w\W]*xyz
Run Code Online (Sandbox Code Playgroud)
为什么它在vim中失败?
是否有网上的正则表达式实施列表,显示它们的差异/相似之处?
对于exaple,Emacs elisp Regex与JavaScript或Perl正则表达式不同,更不用说不同编辑器软件使用的所有不同实现,
例如,VS2010使用{}而不是()为反向引用分组表达式.
曾几何时,我可以依赖O'Reilly的Regex Pocket快速参考中的正则表达式转换列表,但在线的内容会更容易,更完整.
顺便说一句,我知道(当然)http://www.regular-expressions.info/这是好的,但没有接近完成.
我将根据此处发布的答案以及我能找到的任何其他内容编制列表.
实现的差异通常{}()[]^$是处理特殊字符的方式(转义规则等),偶尔也会替换; POSIX字符类的处理/可用性,例如[:digit:],选项的使用,例如g i等.
(正在进行的工作,如果你知道任何警告,这些实现的差异请添加它们作为答案)
\\在elisp中使用,以及\在regexp-replace.(){}[]使用正则表达式时,特殊字符会被转义,就像使用它们一样sed.