RegExp使用找到的选项替换3个选项中的一个但反过来

时间:2018-01-08 01:05:30

标签: regex actionscript-3

我想替换给定的文字 如果有bx替换为xb 如果有ux替换xu 如果有xs替换sx 有很多选择,在所有选项中,我想要发现所发现的顺序。 (x必须在给定的字符数组之前) 它可以写在一个表达中。 我想在Adobe Air AS3中使用它

lookFor = / \u05BC\u05BD | \u05C1\u05BD /

replaceWith = \u05BD ???(取决于发现的内容) txt.replace(lookfor,replaceWith);

1 个答案:

答案 0 :(得分:0)

在ActionScript / JavaScript中,String.replace() function可以将函数作为replaceWith参数。

使用捕获组和全局标记,您可以找到每组字符并在传递的函数中反转它们:

lookFor = /(\u05BC\u05BD)|(\u05C1\u05C2)/g;

var reversedString: String = myString.replace(lookFor, function(str){
    return str.split('').reverse().join('');
});

注意:我已经编辑了您的RegExp以删除字符周围的空格,我不知道它们对您的搜索有多重要。您可能需要考虑使用边界\b(\u05BC\u05BD)\b匹配而不是空格,但这取决于您要匹配的内容。