我无法告诉
Regex忽略任何转义序列.
这是一些示例代码:
string input = "?";
foreach (Match m in Regex.Matches(input,"?"))
{
...
}
但是当它被执行时,它会抛出以下错误:
解析“?” – 量词{x,y}什么都没有.
我只想要“?”作为字符串处理.
谢谢.
编辑:
我也尝试过:
foreach (Match m in Regex.Matches(input,"\?"))
{
...
}
这告诉我,它不被识别为有效的转义序列.
我也尝试过:
foreach (Match m in Regex.Matches(input,"\x3f"))
{
...
}
.NET提供了一个自动为您进行任何转义的函数.每当你有某种输入字符串时,你想要字面上匹配(只是那里的字符),但你知道你使用正则表达式搜索,然后通过这个方法运行它们:
string pattern = Regex.Escape(literalString);
这将处理可能是正则表达式的元字符的任何字符.
MSDN on Escape