2017-03-13 42 views
-3

所以我試圖找到一個正則表達式中的所有句子替換單詞與特定的單詞開始(在我的情況申報)正則表達式來替換一個字一個特定的詞前面

例子:

聲明@order詮釋

聲明@ order2 INT

+3

你試過什麼了? – Fallenhero

+0

不太確定你在這裏問什麼...... –

+0

對不起,問題不清楚。你的意思是,如果一個字符串以'declare'開始,你需要替換所有的'@單詞'?然後使用'if(s.StartsWith(「declare」)){/ *運行Regex.Replace或其他任何* /}' –

回答

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); 
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" 
相關問題