正则匹配需求:匹配</FORMAT>前带点的编号与前置词
解决方法
原来的正则\w+(?=</FORMAT>)无法匹配带点的编号,是因为\w仅匹配字母、数字和下划线,不包含小数点。要同时兼容多级点结尾的编号和普通单词,你可以用以下两种正则方案:
方案1:严格匹配需求场景
适用于仅需要匹配数字多级点结尾的编号和纯字母/数字/下划线的普通单词:
([\d.]+\.|[\w]+)(?=</FORMAT>)
- 匹配逻辑:
[\d.]+\.:匹配由数字和点组成、且以点结尾的多级编号(如1.、1.1.)[\w]+:匹配普通单词(如output3)(?=</FORMAT>):正向预查,确保匹配内容紧跟</FORMAT>标签
方案2:通用匹配场景
如果允许匹配带点的普通单词(如abc.123),可以用更简洁的正则:
[\w.]+(?=</FORMAT>)
- 匹配逻辑:
[\w.]允许匹配字母、数字、下划线和点,覆盖所有你提到的需求场景,同时兼容更多带点的文本格式。
测试验证
- Sample1:
1.</FORMAT>→ 匹配结果:1. - Sample2:
1.1.</FORMAT>→ 匹配结果:1.1. - Sample3:
output3</FORMAT>→ 匹配结果:output3
内容的提问来源于stack exchange,提问作者Premlatha
相关产品推荐
相关产品推荐

