在C#中查找字符串中指定字符串的所有索引

bal*_*lan 2 c# regex

嗨,我正在尝试使用解决方案

在C#中查找字符串中的所有模式索引

但是,它在我的情况下不起作用

string sentence = "A || ((B && C) || E && F ) && D || G";
string pattern = "(";
IList<int> indeces = new List<int>();
foreach (Match match in Regex.Matches(sentence, pattern))
{
  indeces.Add(match.Index);
}
Run Code Online (Sandbox Code Playgroud)

它产生错误,"解析"(" - 不够)".

我不确定我在这里做错了什么.

感谢任何帮助.

谢谢,

Balan Sinniah

Jon*_*eet 7

我不确定我在这里做错了什么.

你忘了它(在正则表达式中有特殊含义.如果你使用

string pattern = @"\(";
Run Code Online (Sandbox Code Playgroud)

我相信它应该有效.或者,只要string.IndexOf你没有真正使用正则表达式的模式匹配,就继续使用.

如果你要使用正则表达式,我个人创建一个Regex对象,而不是使用静态方法:

Regex pattern = new Regex(Regex.Escape("("));
foreach (Match match in pattern.Matches(sentence))
...
Run Code Online (Sandbox Code Playgroud)

这样,关于哪个参数是输入文本以及哪个模式是混淆的范围相当小.