8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Visual Studio Code 中的多行正则表达式

NikkieDev 2月前

37 0

我无法找到一种方法来让正则表达式匹配在 VS Code 中停止,而不是在行末,而是在文件末?这是工具限制还是存在某种我不知道的模式?

我无法找到一种方法来让正则表达式匹配在 VS Code 中停止,而不是在行末,而是在文件末?这是工具限制还是存在某种我不知道的模式?

帖子版权声明 1、本帖标题:Visual Studio Code 中的多行正则表达式
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由NikkieDev在本站《regex》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 看来 CR 与 不匹配 [\s\S] 。添加 \r 到此字符类:

    [\s\S\r]+
    

    将匹配 任何 1+ 个字符。

    其他被证明有效的替代方案 [^\r]+ 包括 [\w\W]+ .

    如果您想让任何字符类匹配换行符,无论是正字符类还是负字符类,您都需要添加 \r 它。

    例如

    • 两个最接近的字符之间的任何 a 文本 b a[^ab\r]*b
    • 和最接近的 START 之间的任何文本 STOP
      • START[\s\S\r]*?STOP
      • START[^\r]*?STOP
      • START[\w\W]*?STOP
    • 最接近的 START STOP 单词之间的任何文本:
      • START(?:(?!START)[\s\S\r])*?STOP

    请参阅下面的演示截图:

    enter image description here

  • @AymericBouzyaybbyk 是的,我正在努力使这个答案保持最新,你可以查看答案修订历史。它有一段时间不起作用,但开发人员修复了他们之前引入的错误。

  • @MichaelJohnston 换行符与 \r/\n 匹配。将其添加到否定字符类中可以借助交替或模式重写来完成。在通用形式中,它可能看起来像 (?:\r|[^pattern])*。我刚刚测试过,[^pattern\r]* 也可以工作,尽管这看起来很奇怪。

  • @WiktorStribiżew 它看起来确实很奇怪,并且还有一些其他奇怪的事情......我认为发生的事情是如果你在正则表达式的任何地方使用 \n,*&[^]等就会开始匹配换行符。

  • 匹配从 aaa 第一个开始并以第一个结束的 bbb (惰性限定符)

    aaa(.|\n)+?bbb
    

    查找从 aaa 最后一个 bbb . 开始并结束的多行文本块(贪婪限定符)

    aaa(.|\n)+bbb
    
  • 如果在 aaa(?:.+|\n)+?bbb 等内部使用 + 则效率会更高(如果在一行中匹配则会略有不同,例如 aaa bbb bbb 会与后者 bbb 匹配)

  • 如果您想从 \'in between\' 文本中排除某些字符,您也可以这样做。这只会找到字符 \'c\' 未出现在 \'aaa\' 和 \'bbb\' 之间的块:

    aaa([^c]|\n)+?bbb
    
  • 我发现自己正在尝试删除 HTML 中的注释。

    根据@genevieve-warren的回答,我想出了这个正则表达式,它可以删除除条件注释之外的 HTML 注释块(多行):

    <!--[^[if](.|\n)+?-->
    
返回
作者最近主题: