繁体   English   中英

C#字符串搜索

[英]C# string search

在此输入图像描述 我有一个包含空格的字符串

string str="Option (A) and option (   B   ) and (c     )"

如果我想搜索(A) (B) (C)位置和长度,我知道我可以使用string.replace(" ","")和搜索。

在这里,我知道(B)在那里,但由于空白,我无法得到正确的索引和长度。

例如,在这种情况下我想要str.IndexOf("(B)",0)应该返回22(我手动计算)。 并且得到长度我的意思是我的程序应该在这里知道(B)开始索引= 22和长度= 9(这里(B)长度不是3,因为在字符串中由于白色空间它增加到9。

谢谢

使用正则表达式:

var str = "Option (A) and option (   B   ) and (c     )";
var matches = Regex.Matches(str, @"\([^()]*\)");
foreach (Match match in matches) {
    Console.WriteLine("Value: {0}", match.Value);
    Console.WriteLine("Position: {0}",match.Index);
    Console.WriteLine("Length: {0}",match.Length);
}

请参阅C#演示

Match对象具有您在获得所有匹配后可以访问的必要IndexLength属性。

这里的模式匹配:

  • \\( - 文字(
  • [^()]* - 除()以外的零个或多个字符
  • \\) - 文字)

您可以通过使用@"\\(\\s*\\p{L}\\s*\\)"来调整它,以匹配( ,0 +空格,一个字母,零个或多个空格和a )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM