You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写匹配任意字符与换行的正则?匹配Mytext..到EndofMyText

解决正则匹配跨换行文本的问题

嘿,我懂你碰到的麻烦了——你原来的正则之所以没法匹配包含换行的内容,核心原因是**默认情况下,正则里的.元字符是不会匹配换行符(\n)**的,它只能匹配除了换行之外的任意单个字符。

下面给你两种靠谱的解决方案,适配不同的正则引擎场景:

方案1:启用单行模式(Singleline/DOTALL 标志)

大多数正则引擎都支持“单行模式”(有些叫DOTALL),开启后.就会匹配包括换行在内的所有字符。

举几个常用语言的写法:

  • Python:使用re.DOTALL标志
    import re
    pattern = re.compile(r'Mytext(.*?)EndofMyText', re.DOTALL)
    
  • JavaScript:在正则末尾加s标志(ES2018+支持)
    const regex = /Mytext(.*?)EndofMyText/s;
    
  • Java:使用Pattern.DOTALL常量
    Pattern pattern = Pattern.compile("Mytext(.*?)EndofMyText", Pattern.DOTALL);
    

方案2:用字符集替代.(不依赖模式标志)

如果你的正则环境不支持单行模式,或者不想额外加标志,可以用一个能覆盖所有字符的字符集来代替.。比如:

  • [\s\S]*?:匹配所有空白字符(包括换行)和非空白字符,等同于任意字符
  • [\d\D]*?:匹配所有数字和非数字字符
  • [\w\W]*?:匹配所有单词字符和非单词字符

对应的正则表达式就是:

Mytext([\s\S]*?)EndofMyText

小提醒:

记得保留*?这种非贪婪匹配,它会确保匹配到第一个出现的EndofMyText就停止,而不是一直匹配到文本最后一个EndofMyText,避免把中间不需要的内容也包含进去。

内容的提问来源于stack exchange,提问作者mcfly soft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:28:55