簡體   English   中英

C#字符串操作使用\\ r \\ n之間的空格來處理空白

[英]C# string manipulation handling white space with \r\n inbetween

我正在嘗試找到一條語句,該語句可以匹配任意數量的空格,這些空格之間也可能有換行符,也可能沒有

字符串示例:

value   \r\n         item

我試圖在字符串上使用IndexOf()來獲取單詞“ value”的索引,然后再獲取單詞“ item”,它必須與value匹配,然后是item,因為兩者都在不同的上下文中使用。

到目前為止,這是我的聲明:

length = (allItems.IndexOf("value (some white space) item") + "value (some white space) item".Length) - startIndex;

希望這是有道理的,並預先感謝。

使用正則表達式可以很容易地做到這一點:

Regex.Matches("value     \r\n    item", @"value(\s)*item")

您指定了“任意數量的空格”,但我懷疑您可能表示“至少一個空格”(即,IE不包括"valueitem" ),在這種情況下,您應該使用@"value(\\s)+item"作為模式(使用+而不是* )。

這為您提供了索引:

string s = "value   \r\n    item";     
string pattern = @"value\s+item";
if (System.Text.RegularExpressions.Regex.IsMatch(s, pattern)) {
    System.Console.WriteLine(s.IndexOf("item"));
}

感謝@Rik和@Tom Fenech提供的模式,我可以使用以下方法找到解決問題的方法:

   string pattern = "\\s+";
   string replacement = " ";
   Regex rgx = new Regex(pattern);
   string test = rgx.Replace(str, replacement);

要從字符串中刪除所有多余的空格(但仍要保留至少一個空格),並:

    test = test.Replace("\r\n", String.Empty);

刪除不必要的換行符。 然后,我可以匹配“值項”並獲取索引。

謝謝你們的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM