VB.Net正则表达式多分组场景下提取指定目标分组的方法咨询
正则实现指定内容提取/替换方案
方案说明
你的实际需求是提取「开头三个固定长度单词序列」和「末尾6~8位数字」之间的文本,你提供的正则里该内容对应分组2,你描述的需求分组编号存在笔误,按示例输出要求,有两种实现方式:
方式1:全局替换法
无需单独替换其他分组,直接将整行匹配结果替换为需要保留的分组值即可:
- 使用你原有正则时,替换值填写
$2即可得到目标内容 - 优化后更稳定的正则(添加行锚定,适配末尾可选空格、兼容数字位数):
^\w{1,2}\s\w{3}\s\w{3}\s(.*?)\s\d{6,8}\s*$,对应替换值填写$1
代码示例(JavaScript)
const reg = /^\w{1,2}\s\w{3}\s\w{3}\s(.*?)\s\d{6,8}\s*$/ const input = "OK THT PHP This is it 06222021" const output = input.replace(reg, '$1') // output 值为 This is it
方式2:直接提取分组法
匹配成功后直接读取对应分组的值即可:
代码示例(Python)
import re reg = r'^\w{1,2}\s\w{3}\s\w{3}\s(.*?)\s\d{6,8}\s*$' input_str = "NO MTM PYT Get this content 111111" result = re.match(reg, input_str).group(1) # result 值为 Get this content
内容的提问来源于stack exchange,提问作者Fabio Craig Wimmer Florey
相关产品推荐
相关产品推荐

