正则表达式匹配以空格开头、以已知值结尾的文本求助
解决多行文本中匹配指定区间内容的正则问题
没问题,我来帮你搞定这个正则匹配需求!针对你要匹配最后一个空格之后、known_text之前的所有内容的需求,这里有两个实用的正则方案:
方案1:使用正向/反向预查(无捕获组,直接匹配目标内容)
正则表达式:
(?<=\s).*(?=known_text)
规则解析:
(?<=\s):反向肯定预查,确保匹配内容的前一位是空白字符(如果只需要匹配普通空格,可替换为).*:匹配任意数量的任意字符(默认不包含换行符,若要支持跨行匹配,记得开启正则的「单行模式」即DOTALLflag)(?=known_text):正向肯定预查,确保匹配内容的后一位紧跟known_text
方案2:使用捕获组(更直观,方便提取结果)
如果你习惯通过捕获组提取目标内容,可以用这个:
\s(.*)known_text
提取结果时直接取第1个捕获组的内容即可。
测试你的示例字符串:
输入字符串:space-separated-values 1/2/tmp/known_text
- 方案1会直接匹配到:
1/2/tmp/ - 方案2的第1个捕获组内容为:
1/2/tmp/
额外提示
如果你的文本包含多行内容,需要开启正则的「多行模式」(MULTILINE flag),这样正则会把每一行当作独立单元处理,确保每一行都能正确匹配目标区间。
内容的提问来源于stack exchange,提问作者Siraj Kakeh
相关产品推荐
相关产品推荐

