如何匹配被任意数量下划线包裹的恰好3字符单词?
匹配被任意数量下划线包裹的恰好3字符内容
核心正则表达式(按行匹配整行内容)
如果需要匹配整行内容为任意数量下划线+3字符+任意数量下划线的行,并提取中间的目标3字符,可使用:
^_+([A-Za-z0-9]{3})_+$
正则规则解释
^:锚定行的起始位置,确保匹配从行首开始_+:匹配1个或多个下划线(对应任意数量的相同分隔符)([A-Za-z0-9]{3}):捕获恰好3个字母/数字字符(若需支持其他非下划线字符,可替换为(.{3}))_+$:锚定行的结束位置,确保行尾是1个或多个下划线
示例文本匹配验证
匹配成功的目标内容(通过捕获组1提取):
Mom(对应行_Mom_)123(对应行_123__)boB(对应行__boB_)pIg(对应行___pIg_____)
匹配失败的行(不符合要求):
__1234_:中间为4字符,不满足“恰好3个”的条件_Mary__:中间为4字符,不满足条件_12_:中间为2字符,不满足条件__Hi___:中间为2字符,不满足条件__MomboBpIg___:中间是多个3字符的连续组合,总长度为9,并非单个3字符
通用提取场景(非按行匹配)
如果需要在任意文本中提取被下划线包裹的3字符(无需限定整行),可使用零宽断言正则:
(?<=_+)[^_]{3}(?=_+)
该正则会直接匹配被一个或多个下划线前后包裹的、恰好3个非下划线字符,无需额外捕获组即可提取结果。
内容的提问来源于stack exchange,提问作者Shawn Sharp
相关产品推荐
相关产品推荐

