j'ai chaîne comme ceci:comment exclure une partie de la chaîne de mise en correspondance regex (exemples dictionnaire arabe)
var str = "translation1; translation2; اللغة العربية example1; اللغة العربية example2; اللغة العربية example3; اللغة العربية example4; اللغة العربية example5; اللغة العربية example6; اللغة العربية example7; اللغة العربية example8; اللغة العربية example9";
Il est la traduction de mots, après les va exemples, sorcière j'identifions comme des lettres arabes entre 2 points-virgules. Je dois séparer entre les traductions et des exemples, et obtenir tableau uniquement avec des exemples:
["اللغة العربية example1", "اللغة العربية example2", .... ]
J'ai essayé ce code:
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);
Mais il renvoie des exemples [0] = " traduction2; اللغة العربية exemple1; ".
Comment supprimer "translations2;" de correspondance dans l'exemple 1?
Le reste des éléments s'exécute correctement.
(je fait example_pattern.lastIndex --;
parce que sans elle le code retourne un tableau uniquement avec 1er, 3d, 5e, 7e, 9e exemples. Peut être il y a un moyen de faire mieux regexp example_template)
Qu'en est-il juste ['str.match (/ [ا-ي] +/g)'] (https://jsfiddle.net/0vouaLe0 /) pour correspondre à tout morceau de 1+ lettres arabes? –