我正在尝试将这个正则表达式从sublime文本转换为我可以在vim中使用的表达式:
(?<![>\w\d])(42|45|21)\s(?!days)
我想匹配42,45和21,它们不会立即由&lt ;,一个单词字符或一个数字继续,并且不会跟着单词days。
在示例中,我想在此找到42:
This is a reference to chapter 42 in the book.
但不是这样:
This is a reference to chapter <a href="#">42</a>.
或者这个:
This is a reference to chapter <a href="#">42 section 35</a>.
或者这个:
This book took 42 days to write.
我对正则表达式相当新,对vim来说是新手,所以如果这是一个格式错误的正则表达式,请原谅我。
答案 0 :(得分:8)
搞定了
\([>]\)\@<!\<\(4[25]\|21\)\( days\)\@!
或
\v([>])@<!<(4[25]|21)( days)@!
正如您所看到的,外观的语法在vim中是不同的,并且您有多种模式可以使用正则表达式进行搜索我通常使用nomagic
和very magic
花些时间看看魔法模式的帮助::help /magic
修改强>
现在它还包括45和21