我有一個字符串,如下所述。正則表達式與空格分割
試驗[0] =值1測試1 [0] =值2 Test3的[0] =值3 ....等。,
我想使用正則表達式以分開它們,如下
Test[0] = Value1
Test1[0] = Value2
Test3[0] = Value3
你能給我一些正則表達式來將它們的一行字符串分成多行嗎?
請讓我知道你是否需要在這個問題上更多的澄清。
我有一個字符串,如下所述。正則表達式與空格分割
試驗[0] =值1測試1 [0] =值2 Test3的[0] =值3 ....等。,
我想使用正則表達式以分開它們,如下
Test[0] = Value1
Test1[0] = Value2
Test3[0] = Value3
你能給我一些正則表達式來將它們的一行字符串分成多行嗎?
請讓我知道你是否需要在這個問題上更多的澄清。
嘗試這種情況:
String s = "Test[0] = Value1 Test1[0] = Value2 Test3[0] = Value3";
String result = Regex.Replace(s, @"(?<!=)\s(?!=)", "\r\n");
正則表達式(?<!=)\s(?!=)
正在尋找一個空白字符(在\s
,也許你想用一個空格來代替這一點,因爲
\s
還包含換行符。)有沒有=
之前或之後,並取代它與\r\n
。
這會爲您的示例生成您期望的結果。
更新:的
,而不是與換行符替換序列周圍猜測,有在.net
一個很好的捷徑來得到當前系統的換行符:Environment.NewLine
所以更改代碼:
String result = Regex.Replace(s, @"(?<!=)\s(?!=)", Environment.NewLine);
你需要在換行符之前或之後允許的內容更加具體。你可以做什麼,如果有必須在每邊的數字或字母(在這裏,而不是一個=
或]
)的空間,這是搜索和替換:
s/([\d\w])\s([\d\w])/\1\n\2/gi
正則表達式:
(Test[\d]*\[[\d]+\])\s*\=\s*(\w+)\s*
替換表達式(僅一個例子):
$1 = $2 + chr(13)
var results = Regex.Matches("Test[0] = Value1 Test1[0] = Value2 Test3[0] = Value3", @"[^\s]+\s*=\s*[^\s]+")
.OfType<Match>()
.Select(item => item.Value)
.ToArray();
這將匹配X = Y,其中x和y可以是除空白字符之外的東西。
酷感謝Stema。這就是訣竅! – K2M