2017-05-24 77 views
-1

我想只更換炭;如果線包含字"eeeeeeeeee"在Visual Studio中「查找和替換」工具這個); 使用正則表達式如果行包含特定單詞,則替換char。正則表達式「查找和替換」

text = rpt.ReportDefinition.ReportObjects["TextForignHead"] as TextObject; 
Adapters.clssReportsArrange.funSetText(rpt, "eeeeeeeeee", "The Sum in " + CrncyName2; 
text = rpt.ReportDefinition.ReportObjects["TextForignAmount"] as TextObject; 
if (CrncyNo2 == "1") 
Adapters.clssReportsArrange.funSetText(rpt, "eeeeeeeeee", "#" + Amount2 + "#; 

Find and replace

+0

你已經試過了嗎? – horcrux

+0

我試着用這個^。*(eeeeeeeeee)。* $ ,用 這個詞選擇整行是很好的,但現在我需要條件來選擇分號;如果該行包含eeeeeeeeee – masalahi

回答

0

這應該工作。

發現:

("eeeeeeeeee"[^\n;]*); 

取代:

\1); 
"eeeeeeeeee"

你的比賽,直到在第一線;並與第一個捕獲組更換整場比賽加);

Here a demo on regex101.com

編輯:使用Visual Studio 2008中,你會發現這一點:

{"eeeeeeeeee"[^\n;]*}; 

進一步解釋:

  • "eeeeeeeeee"字面匹配"eeeeeeeeee"
  • [^\n;]所有既不是一個換行符(\n),也不是一個字符相匹配分號
  • *運算符代表「零個或多個」
  • {...}是一個捕獲組。在替換中,您可以使用\1(其中1是捕獲組的編號)引用其內容。

因此,從"eeeeeeeeee"開始,您匹配行中的所有非分號字符,直到第一個「;」。在替換中,您反向引用所有模式,但是;,並且將它與);連接。

Here你可以找到完整的VS08正則表達式語法。

+0

這非常接近 但我只需要改變;至 ); 樣變 Adapters.clssReportsArrange.funSetText(RPT, 「eeeeeeeeee」, 「總和的」 + CrncyName2; 到 Adapters.clssReportsArrange.funSetText(RPT, 「eeeeeeeeee」, 「總和的」 + CrncyName2); – masalahi

+0

@ masalahi這正是正則表達式所做的(參見演示) – horcrux

+0

只在演示中,但在實際的visual studio 2008中將其更改爲 Adapters.clssReportsArrange.funSetText(rpt,); – masalahi