用于搜索以字符串1开头的字符串的正则表达式,不包含字符串2,以字符串3结尾

时间:2017-06-13 02:36:03

标签: regex visual-studio

我目前正在使用visual studio正则表达式模式编写正则表达式来搜索文件,我正在使用的模式是这样的

  1. 以字符串1开头
  2. 在字符串1和3
  3. 之间不包含string2
  4. 以字符串3结尾
  5. 我修改了我之前使用的前一个正则表达式(2年?)但是不能提出符合需求的东西。目前我正在尝试继续努力。

    \bword1\W+(?:\w+\W+)*^((?!word2).)*$word3\b
    

    任何人都可以教我关于正则表达式的一两件事吗?

    谢谢

1 个答案:

答案 0 :(得分:2)

查找

  • 以字符串1开头 - string1
  • 在字符串1和3 之间不包含string2 - 在这里,您需要使用. tempered with a negative lookahead - (?:(?!string1|string2).)*?(请注意,要匹配跨行,在Visual Studio S& R中,您需要使用[\s\S\r]而不是.\r,因为[\s\S]与VS S&中的换行符不匹配R regex))
  • 以字符串3结尾 - string3

所以,整个表达式是

string1(?:(?!string1|string2).)*?string3

请参阅regex demo