正则表达式匹配带前缀/后缀的基准词,排除无前后缀的情况
正则表达式解决方案
推荐两种单次匹配的高效方案,均能满足你的需求:
方案一:断言排除法(简洁高效)
^(?!(base|text|word)$)<?(base|text|word)>?$
规则说明:
^(?!(base|text|word)$):负向先行断言,直接排除整行仅为基准词(既无前缀<也无后缀>)的情况<?(base|text|word)>?:匹配带0-1个前缀<、0-1个后缀>的基准词,结合前面的断言,只会保留至少带一个符号的目标内容
方案二:枚举匹配法(兼容性强)
如果你的正则引擎对断言支持有限,可以直接枚举所有有效情况:
^<(base|text|word)$|^(base|text|word)>$|^<(base|text|word)>$
规则说明:
- 直接列出三种符合要求的格式:仅带前缀
<的基准词、仅带后缀>的基准词、同时带前后缀的基准词,精准匹配目标内容,避免误匹配单独的基准词
匹配验证
针对你的示例输入:
text
两种方案都会匹配 <text、text>、<text>,不匹配单独的 text,完全符合需求。
内容的提问来源于stack exchange,提问作者stackunderflow
相关产品推荐
相关产品推荐

