用正则表达式替换文本

时间:2012-08-16 09:22:41

标签: c# asp.net .net regex .net-4.0

我有以下字符串:

  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]

6 个答案:

答案 0 :(得分:0)

用字符串(?<=\[Test\(\w+?="P"\))\]

替换正则表达式, Hello]

答案 1 :(得分:0)

如果您不想使用正则表达式,请尝试此操作:

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

只有在你的字符串中只有一个“]”时,这才能正常工作..

答案 2 :(得分:0)

您可以尝试使用查找表达式:

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

并替换表达式:

"$1,Hello]"

答案 3 :(得分:0)

如果内容是静态的。尝试string.replace即可。我的观点:))

答案 4 :(得分: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");

答案 5 :(得分:0)

试试这个正则表达式:

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

替换为

$1, Hello]

您的代码可以是这样的:

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

或此simle替换:

var result = inputString.replace( "]", ", Hello]" );
相关问题