这个问题在这里已有答案:
如何调整此正则表达式,只选择一个替换短语中的一个匹配项 . 我正在使用Google表格REGEXEXTRACT函数来收集字符串的一部分 . 我通过使用交替几乎涵盖了所有条件 - 除了一个,其中源字符串包含多个交替匹配 .
一个简单的测试例子,在B1:B4我有 .
=REGEXEXTRACT(A1,"([^\d]*)\s?(?:vs|bc)")
=REGEXEXTRACT(A2,"([^\d]*)\s?(?:vs|bc)")
=REGEXEXTRACT(A3,"([^\d]*)\s?(?:bc|vs)")
=REGEXEXTRACT(A4,"([^\d]*)\s?(?:bc|vs)")
(注意B3和B4中反转的bc | vs交替)
在A1:A4我有
oiu tgi vs ghj bc fgh
de nbv the vs ghj fgh
ghj YHTF bc fgh
iii iii kji bc fgh vs oiu
我想要的结果是B1:B4
oiu tgi
de nbv the
ghj YHTF
iii iii kji
问题是引擎(非常正确)匹配两个交替短语并提取源字符串中最后一个匹配(最右边)左边的所有内容 . 不是我想要的 . 交替匹配之间的各种文本长度是随机的 . 我的整个方法是错的吗?
我在B1:B4中得到的结果是:
oiu tgi vs ghj
de nbv the
ghj YHTF
iii iii kji bc fgh
由于实际数据中的行数是数千,我显然想要所有变体的通用正则表达式 .
1 回答
看看这是否有效