求适用于Google Sheets REGEXEXTRACT的正则表达式提取指定子串
精准提取目标子串的正则方案
先看你的输入结构:每条字符串用|分成左右两部分,左边是下划线分隔的字段,目标是抓左边部分里倒数第二个下划线和最后一个下划线之间的内容(最后一个下划线后面都是数字)。
你之前的正则问题:
"*(\w+-\w+)*":开头结尾的*是无效语法,而且只能匹配带连字符的内容,Greece、Athens3476没连字符,所以匹配失败。"*(.*)*":匹配范围太宽,把从第二个下划线到倒数第二个下划线的内容都抓出来了,不符合需求。
给你两个可行的正则方案:
方案1:捕获组提取(适合支持捕获组的工具)
正则表达式:
^.*_([^_]+)_\d+\|.*
逻辑说明:
^.*_:匹配从开头到倒数第二个下划线的所有内容,跳过前面不需要的字段([^_]+):捕获目标内容,匹配所有非下划线的字符,刚好是倒数第二个和最后一个下划线之间的部分_\d+\|.*:匹配最后一个下划线、后面的数字、|以及右侧所有内容,跳过不需要的部分
提取捕获组1的内容就是你要的结果。
方案2:替换法提取(适合支持替换的工具)
查找正则:
^.*_|_\d+\|.*
替换为空字符串,剩下的就是目标内容。
验证结果:
用这两个正则处理你的输入:
- 第一条提取出
Greece - 第二条提取出
Crete-50 - 第三条提取出
Athens3476
内容的提问来源于stack exchange,提问作者Dawn7047
相关产品推荐
相关产品推荐

