我有这样的字符串:
var str = "translation1; translation2; اللغة العربية example1; اللغة العربية example2; اللغة العربية example3; اللغة العربية example4; اللغة العربية example5; اللغة العربية example6; اللغة العربية example7; اللغة العربية example8; اللغة العربية example9";
这是单词翻译,在他们举例后,我认为像2个分号之间的阿拉伯字母。我需要将翻译和示例分开,并仅使用示例获取数组:
["اللغة العربية example1", "اللغة العربية example2", .... ]
我试过这段代码:
var str = "translation1; translation2; اللغة العربية example1; اللغة العربية example2; اللغة العربية example3; اللغة العربية example4; اللغة العربية example5; اللغة العربية example6; اللغة العربية example7; اللغة العربية example8; اللغة العربية example9;";
var match = "";
var example_pattern = /;([\s\S]+?[ا-ي]+?[\s\S]+?);/ig
var examples = [];
while (match = example_pattern.exec(str)) {
examples.push(match[1]);
example_pattern.lastIndex --;
}
console.log(examples);
但它返回示例[0] =“translation2;اللغةالعربيةexample1;”。
如何删除“translations2;”来自example1中的匹配?
其余元素执行得很好。
(我发了example_pattern.lastIndex --;
因为没有代码只返回第1,第3,第5,第7,第9个例子的数组。可能有办法让regexp example_template更好)
答案 0 :(得分:0)
这是如此愚蠢的错误。我只是通过在正则表达式“example_pattern”
的开头删除\ S来解决问题