匹配包含美元符号的整个单词?

时间:2014-02-17 16:27:16

标签: c# regex

我正在使用

string pattern = "\\b" + myString + "\\b"

匹配字符串就好了,但是现在我需要找到一个前缀为$的字符串,所以当它被$myString括起来时我需要匹配[$myString] }。如果没有正则表达式认为它是某些正则表达式设置的特殊字符,我如何在我的模式中添加美元符号?

3 个答案:

答案 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]

Regular expression visualization

Debuggex Demo

<强> 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