【发布时间】:2020-10-19 20:01:34
【问题描述】:
尝试使用 Google 应用程序脚本中的正则表达式提取具有已知模式的可变长度字符串的字母数字部分。模式重复 n 次如下(XXX 是字母数字字符组): XX-XXX-X-XX-XX-........ 例如 ABC-AB 或 ABCD-AB-ABC-AA 如果可能的话,我想将字母数字部分提取到一个数组中,例如 e[0] = ABCD e[1] = AB e[2] = ABC .....
我尝试重复 \w+ 但这需要知道字符串的可能长度。见下文。 Regex 有没有办法处理不同大小的字符串?请参阅下面的示例代码:
var data1 = 'ABC-AB';
var data2 = 'ABCD-AB-ABCD-AA';
var regex1 = new RegExp(/(\w+)-(\w+)/);
var regex2 = new RegExp(/(\w+)/);
e = regex1.exec(data1); //stores ABC and AB as separate array elements.
这很好,但不适用于更大尺寸的字符串
e = regex2.exec(data2); //stores ABCD only as a single array element "ABCD"
【问题讨论】:
-
匹配重复的字符串并在
-上拆分