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

无法使用\s/\S时,如何用正则匹配多行标签间内容?

解决正则匹配

标签内容的POSIX字符类替换问题

你的问题出在字符类的写法上,原来的[\s|\S]是用\s(空白字符)和\S(非空白字符)覆盖所有字符,但换成POSIX字符类时,你错误地用了嵌套字符类加|的写法[[^[:space:]]|[[:space:]]],这在正则里是无效语法。

正确的正则写法

把空白字符类和非空白字符类合并到同一个字符类中即可,两者的并集就是所有字符(包括换行):

(<p>[[:space:][^[:space:]]]+</p>)

补充说明

  • POSIX字符类中,[[:space:]]对应\s,[^[:space:]]对应\S,将它们放在同一个[]里就等价于[\s\S],能匹配任意字符。
  • 若你需要避免贪婪匹配(比如存在多个<p>标签时),可以把+改成+?(需你的正则引擎支持非贪婪量词),但你的示例场景下贪婪匹配就足够满足需求。

用这个正则测试你的示例文本,会准确匹配从<p>到</p>之间的所有内容,包括换行和缩进空格。

内容的提问来源于stack exchange,提问作者Steve Murdock

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:47:03