正则表达式替换前面带有特定单词的单词

时间:2017-03-13 14:42:01

标签: c# regex

所以我试图找到一个正则表达式来替换所有句子中的单词以特定单词开头(在我的情况下声明)

  

示例:

     

声明@order int

     

声明@ order2 int

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

var lines = new string[]
{
    "declare @order int",
    "test string",
    "declare @order2 int"
};

string pattern = "declare";
string replacement = "something";
Regex regex = new Regex(pattern);

var output = lines.Select(l => l = (l.StartsWith(pattern)) ? 
                                      regex.Replace(l, replacement, 1) : l);

答案 1 :(得分:0)

我没有专家,但我认为你可以使用:/declare (@order)/g

我在Javascript中对此进行了测试:

var regex = /declare (@order)/g
var result1 = regex.exec("origin: test @order int");
// result: null

var regex = /declare (@order)/g
var result1 = regex.exec("result: declare  @order int");
// result: ["declare @order", "@order"]

您可以在str.replace函数中使用正则表达式:

var str = "result: declare @order int";
var res = str.replace(/declare (@order)/g, "new-value");
// Result: "result: new-value int"