3

+演算子、-/*区切り記号として使用して分割したい方程式があります。次に、1 つの項目を変更して、方程式を元に戻したいと思います。たとえば、方程式は次のようになります。

 s="5*3+8-somevariablename/6";    

正規表現を使用して方程式を分解できると考えていました。

    re=/[\+|\-|\/|\*]/g
var elements=s.split(re);

次に、要素を変更して元に戻します。しかし、どうにかして各区切り文字とそれがいつ使用されたかを追跡できない限り、元に戻す方法はありません。このようなもののための別の正規表現ツールはありますか?

4

2 に答える 2

5

nnnnn の投稿を拡張すると、これは機能するはずです。

var s = '5*3+8-somevariablename/6';
var regex = /([\+\-\*\/])/;
var a = s.split(regex);

// iterate by twos (each other index)
for (var i = 0; i < a.length; i += 2) {
    // modify a[i] here
    a[i] += 'hi';
}

s = a.join(''); // put back together
于 2013-09-08T23:06:31.933 に答える
1

regexp を動的に生成することもできます。

var s = '5*3+8-somevariablename/6';
var splitter = ['*','+','-','\\/'];
var splitted = s.split(new RegExp('('+splitter.join('|')+')'),'g'));
var joinAgain = a.join('');

ここで、分割された配列は、正規表現で指定された () のため、すべての区切り記号を保持します

于 2016-07-06T12:45:53.200 に答える