如何编写匹配不含连续空格的正则表达式,匹配到两个空格即停止
可用正则实现方案
你需要的匹配中间名称部分的核心pattern为:(?:(?! {2}).)+
规则说明
- 该表达式通过负向先行断言
(?! {2})限制:每次匹配任意字符前都会校验后续不会紧跟着2个连续空格,既保证匹配内容内部不会出现2个及以上连续空格,也会在遇到第一个连续双空格时自动终止匹配,完全符合你的需求。
嵌入你给出的^\d+ +(pattern) +\d+$结构的完整示例(适配你提供的样本行格式):
^\d+ +((?:(?! {2}).)+) +\d+ +\d+$
针对你给出的样本行3432543 name that % might 7 include pretty . much 433 anything 545231 4522测试,捕获组1会精准匹配到目标内容name that % might 7 include pretty . much 433 anything,不会将后续的545231纳入匹配范围,该pattern可以直接嵌入到更复杂的正则规则中使用。
内容的提问来源于stack exchange,提问作者Naryoril
相关产品推荐
相关产品推荐

