不支持\K运算符时如何编写正则捕获首个冒号后内容(无冒号则全捕获)
不支持\K时的正则提取解决方案
方案1:使用捕获组提取有效内容
你可以把需要的内容放到捕获组中,替换原正则为:^(?:.*:\s?)?(.+)
匹配后直接取第一个捕获组的内容即可,完全覆盖三种场景:
- 带
Address:前缀的条目:捕获组返回冒号空格后的地址内容 - 带
Address:(无空格)前缀的条目:捕获组返回冒号后的地址内容 - 无前缀的条目:捕获组直接返回完整地址内容
方案2:使用前缀替换法
如果你的系统仅支持正则替换操作,可使用以下正则匹配前缀:^.*:\s?
将匹配到的内容替换为空字符串,剩下的内容就是你需要的有效信息,三种场景均适用。
注意事项
如果处理的是多行文本,需要开启正则的多行匹配模式,保证^符号可以匹配每一行的开头,避免跨行匹配出错。
内容的提问来源于stack exchange,提问作者ryanq.feeney
相关产品推荐
相关产品推荐

