2017-09-10 5 views
0

私はこのような文字列を持っている:彼らは私が2つのセミコロンの間にアラビア文字のような特定の例、魔女を行く後正規表現マッチングの文字列の一部を除外する方法(アラビア語辞書としては)

var str = "translation1; translation2; اللغة العربية example1; اللغة العربية example2; اللغة العربية example3; اللغة العربية example4; اللغة العربية example5; اللغة العربية example6; اللغة العربية example7; اللغة العربية example8; اللغة العربية example9"; 

それは、単語の翻訳です。私は翻訳と例の間で分離し、例のみと配列を取得する必要があります

["اللغة العربية 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のマッチングから?

残りの要素は正常に実行されます。

(私は、コードが唯一の第一、3D、第5、第7、第9例で、配列を返すため、それなしexample_pattern.lastIndex --;を作った。かもしれませexample_templateより良い正規表現を作るための方法があります)

+0

[str.match(/ [ð-É] +/g) '](https://jsfiddle.net/0vouaLe0 /)を使用して、1つ以上のアラビア文字の塊に一致させますか? –

答えて

0

それはとても愚かな間違いでした。正規表現 "example_pattern"の先頭にある\ Sを削除するだけで問題を解決しました

関連する問題