我需要替換以%
開頭的單詞。正則表達式拆分和替換
例如Welcome to home | %brand %productName
希望拆就話與%
begining這會給我{ brand, productName }
。
我的正則表達式低於平均水平,所以將不勝感激。
我需要替換以%
開頭的單詞。正則表達式拆分和替換
例如Welcome to home | %brand %productName
希望拆就話與%
begining這會給我{ brand, productName }
。
我的正則表達式低於平均水平,所以將不勝感激。
沒有錯string.split辦法,你要知道,但這裏有一個正則表達式的方法:
string input = @"Welcome to home | %brand %productName";
string pattern = @"%\S+";
var matches = Regex.Matches(input, pattern);
string result = string.Empty;
for (int i = 0; i < matches.Count; i++)
{
result += "match " + i + ",value:" + matches[i].Value + "\n";
}
Console.WriteLine(result);
感謝這就是我一直在尋找。需要刷上我的正則表達式。我以前使用string.split方法,但正在尋找一種不太麻煩的方法。再次感謝 – Christo 2012-02-23 13:11:41
試試這個:
(?<=%)\w+
這看起來對於立即百分比符號開頭的字字符的任意組合。現在
,如果你正在做的搜索,並在這些比賽代替,你可能想要刪除%符號一樣,所以你需要刪除的回顧後組,只有這個:
%\w+
但是這樣做,您的替換代碼將需要修剪每個匹配的%符號以獲取單詞。
您可以使用'%(\ w +)'來匹配組並替換所需的任何內容。 – 2012-02-23 07:23:19
下面的代碼可以幫助你:
string[] splits = "Welcome to home | %brand %productName".Split(' ');
List<string> lstdata = new List<string>();
for(i=0;i<splits.length;i++)
{
if(splits[i].StartsWith("%"))
lstdata.Add(splits[i].Replace('%',''));
}
這將是,如果你使用%品牌更容易% %productName% – Christophe 2012-02-23 07:26:22
您是否試圖獲得僅包含「brand」和「productName」的數組,或者您是否試圖替換這些詞,如果是的話,您試圖將它們替換爲什麼? – 2012-02-23 08:00:51
如果您有想要的解決方案,請不要忘記標記答案 – 2012-02-23 10:58:11