-2

私は次の文字列を持っています:

  This is my testasdasd  [Test(XYZ="P")] abc sdfsdf
    This is my testasdasd  [Test(ABC="P")] sdfsdf
    This is my testdfsdfsdf  [Test(DEF="P")] sdfsdfs
    This is my testsdfsdfsdf  [Test(GHI="P")] asdfasdasd

上記の文字列の「)」インの後に「、Hello」テキストを追加したいと思います。私の出力は次のようになります。

This is my testasdasd [Test(XYZ="P"), Hello] abc sdfsdf
This is my testasdasd [Test(ABC="P"), Hello] sdfsdf
This is my testdfsdfsdf [Test(DEF="P"), Hello] sdfsdfs
This is my testsdfsdfsdf  [Test(GHI="P"), Hello] asdfasdasd

そのための正規表現を作成するのを手伝ってもらえますか?

編集:「]」を検索して置き換えるだけでは上記を実行できません。文字列に他のブラケットもあります。[Test(..)]を見つける必要があり、出力は[Test(...)、Hello]になります。

4

6 に答える 6

0

正規表現(?<=\[Test\(\w+?="P"\))\]を文字列に置き換えます, Hello]

于 2012-08-16T09:27:36.900 に答える
0

正規表現を使用したくない場合は、これを試してください。

String newString = yourString.replace( "]", ", Hello]" );

これは、文字列に「]」が1つしかない場合にのみ正しく機能します。

于 2012-08-16T09:32:35.147 に答える
0

ルックアップ式を試すことができます。

@"(\[\s*Test\s*\(.*?\)\s*)\]"

そしてこれは式を置き換えます:

"$1,Hello]"
于 2012-08-16T09:32:56.213 に答える
0

コンテンツが静的になる場合。やってみstring.replaceてもいいです。私の見解 :)

于 2012-08-16T09:36:09.607 に答える
0
function insert(string, word) {
    return string.replace(/\[Test\(.+\)\]/g, function(a, b) {
        return a.replace("]", ", " + word + "]");
    });
}

insert('This is my testasdasd  [Test(XYZ="P")] abc sdfsdf', "Hello");
于 2012-08-16T09:45:53.567 に答える
0

この正規表現を試してください:

(\[Test\([^\)]*\))\]

と置換する

$1, Hello]

コードは次のようになります。

var result = Regex.Replace(inputString, @"(\[Test\([^\)]*\))\]", "$1, Hello]");

またはこの単純な置換:

var result = inputString.replace( "]", ", Hello]" );
于 2012-08-16T09:46:57.383 に答える