正则表达式如何提取捕获组$1中匹配字符串的前2个字符
正则捕获指定字符串前两位的实现方案
方案1:修改正则表达式直接捕获
你可以调整现有正则结构,在不改变原有匹配范围的前提下,直接把前两位字符设为单独捕获组:
((ab)10|(cd)14|(ef)23|(mn)99)
调整后的捕获结果对应关系:
- 完整匹配的字符串(ab10/cd14/ef23/mn99)仍存储在
$1,和原有逻辑一致 - 需要的前两位字符存储在
$2
如果不需要保留完整字符串的捕获,也可以用正向预查实现更简洁的写法,匹配结果直接就是前两位:
ab(?=10)|cd(?=14)|ef(?=23)|mn(?=99)
方案2:不修改正则,直接截取捕获结果
如果不想改动现有正则逻辑,直接对已捕获到的$1结果取前两位即可,常见语言的实现示例:
- JavaScript:
$1.slice(0, 2) - Python:
match.group(1)[:2] - Java:
group1.substring(0, 2) - PHP:
substr($matches[1], 0, 2) - Go:
string(matches[1][:2])
内容的提问来源于stack exchange,提问作者kietheros
相关产品推荐
相关产品推荐

