我想替換所有出現的字符串,只要這些字符串不以'@'開頭,例如在下面的例子中查詢:只有當它們不以'@'開始時,纔會替換所有出現的字符串
(surname = @surname and surname = @surname1)
,如果我想更換surname
,它只會取代他們兩個等號的左邊。因此,請留下@surname
和@surname1
。
我想替換所有出現的字符串,只要這些字符串不以'@'開頭,例如在下面的例子中查詢:只有當它們不以'@'開始時,纔會替換所有出現的字符串
(surname = @surname and surname = @surname1)
,如果我想更換surname
,它只會取代他們兩個等號的左邊。因此,請留下@surname
和@surname1
。
您可以使用Regex.Replace
本:
Regex.Replace(yourString, "([^@])surname", "$1Diaz");
的[^@]
基本上告訴正則表達式,除了@符號的任何字符可以進來,你正在尋找的「姓」文本的前面。 1美元是必要的,否則,無論角色是否也會被剝離。
請注意,這個正則表達式,沒有一些額外的修改,將不匹配「姓氏」,如果它在字符串的開始。在你提供的例子中,它開始於一個開括號,所以只要這個條件成立,上面的解決方案就可以工作。
您也可以使用零寬度斷言來消除「$ 1」的需要。 –
感謝你們,如何修改它以匹配字符串開頭的「姓氏」? –
你嘗試過什麼嗎? – Tim