我有一个字符串,其中包含“^ ##”形式的颜色,其中##可以是00-99。
我写了正则表达式来检测和替换这些颜色:
Input = Regex.Replace(Input, "\^[0-9][0-9]", "");
然而,编译器似乎不喜欢\ ^作为检测“^”字符的方法(给出无效的转义码错误)。那么如何在c#regex中查找^字符?
答案 0 :(得分:2)
您可以尝试在Regex中使用逐字字符串
Input = Regex.Replace(Input, @"\^[0-9][0-9]", "");
如果您想了解有关字符串文字的更多信息,请在MSDN上阅读此article。
答案 1 :(得分:2)
这是因为,没有这样的转义序列(\^
)
您可以使用:
@"\^[0-9][0-9]"
"\\^[0-9][0-9]"
提示:
[0-9]
等同于简写\d
[0-9][0-9]
(或[0-9]{2}
)代替\d{2}
。当你有更多的重复时,这会有所帮助。答案 2 :(得分:0)
尝试使用双斜杠"\\^"
斜杠是创建字符串对象本身的控制字符。
但是你希望字符串本身包含一个斜杠。
答案 3 :(得分:0)
由于C#编译器本身对字符串中的\
赋予特殊含义,如果您希望字符串包含\
,则必须执行以下两项操作之一:
通过加倍来逃避它:\\
在开头"
前面加上@
:@"\"
,使字符串成为逐字字符串 - 但请注意,后一个选项会更改引号的引用方式({{1}必须转义字符串中的字符串