如何用正则表达式提取字符串首下划线前及一二下划线间的内容?
解决方案
方法1:字符串分割(简单直观)
大部分编程语言都支持按指定字符分割字符串的方法,只需限制分割次数为2,就能快速拿到前两个目标部分:
以Python为例:
s = "ABCD_HEWD_21.1_220101_R123456789_231010_085204.xml" # 只分割前两个下划线,得到包含前三个部分的列表 parts = s.split('_', 2) first_section = parts[0] # 结果:"ABCD" second_section = parts[1] # 结果:"HEWD"
方法2:正则表达式精准匹配
如果想用正则,不用复杂的断言,直接匹配字符串开头的两个非下划线片段即可:
正则表达式:
^([^_]+)_([^_]+)
^:锚定字符串开头,避免匹配中间的片段([^_]+):捕获一个或多个非下划线字符,作为第一个目标部分_:匹配第一个下划线([^_]+):捕获第二个非下划线片段,即第一个和第二个下划线之间的内容
以Python为例:
import re s = "ABCD_HEWD_21.1_220101_R123456789_231010_085204.xml" match_result = re.match(r'^([^_]+)_([^_]+)', s) if match_result: first_section = match_result.group(1) second_section = match_result.group(2)
如果你只想单独提取第二个部分,也可以用简化版正则:^[^_]+_([^_]+),直接取捕获组1即可。
内容的提问来源于stack exchange,提问作者Robin Douglas
相关产品推荐
相关产品推荐

