我正在使用
string pattern = "\\b" + myString + "\\b"
匹配字符串就好了,但是现在我需要找到一个前缀为$
的字符串,所以当它被$myString
括起来时我需要匹配[$myString]
}。如果没有正则表达式认为它是某些正则表达式设置的特殊字符,我如何在我的模式中添加美元符号?
答案 0 :(得分:3)
如果您需要将其用作美元符号,则只需要转义$
即可。 但是,这意味着您无法使用字边界来查看字边界。如果您的模式是固定的,为什么不执行以下操作:
string pattern = "\\[\\$" + myString + "]"
答案 1 :(得分:3)
有两种选择;要么逃避它,要么把它放在一个字符类中,即:
\$
或
[$]
我更喜欢前者。因为你在C#,你可以使用@
符号,这样你就不必双重逃避:
string pattern = @"\$\b" + myString + @"\b"
有了这个,您应该能够匹配$myString
根据您的编辑,如果您想匹配方括号,只需添加它们,但不要忘记转义!
string pattern = @"\[\$\b" + myString + @"\b\]"
由于第一个[
被转义,因此您实际上不需要转义第二个,因为您不能拥有没有开放[ ... ]
的字符类([
):
string pattern = @"\[\$\b" + myString + @"\b]"
答案 2 :(得分:1)
\[\$myString]
<强> C#强>
string pattern = @"\[\$" + myString + @"]";
<强>描述强>
\[\$myString]
\[ matches the character [ literally
\$ matches the character $ literally
myString matches the characters myString literally (case sensitive)
] matches the character ] literally