如何编写正则表达式提取单值或竖线分隔组的首个值?
提取竖线分隔字符串的首个值或完整单值的正则表达式
直接用这个正则就能搞定:^[^|]+
正则说明
^:锚定到字符串的起始位置,保证从最开头开始匹配[^|]+:匹配任意数量(至少1个)非竖线|的字符——如果是单个无竖线的值,就会匹配整个字符串;如果是竖线分隔的多值组,就会匹配第一个竖线之前的所有内容,正好是你要的首个值
匹配示例
原有输入(每行一个字符串):
12345667D23 3t23456 ab57890 3t23456|ab57890 12345667D23|3t23456|ab57890
提取结果:
12345667D23 3t23456 ab57890 3t23456 12345667D23
实际使用小提示
如果用代码提取(比如Python),直接匹配每行结果即可:
import re lines = [ "12345667D23", "3t23456", "ab57890", "3t23456|ab57890", "12345667D23|3t23456|ab57890" ] for line in lines: match = re.match(r'^[^|]+', line) if match: print(match.group())
如果在文本编辑器里批量处理(只保留每行首个值),也可以用查找规则^(.*?)\|.*,替换为$1实现同样效果。
内容的提问来源于stack exchange,提问作者JuliB
相关产品推荐
相关产品推荐

