正则表达式中如何匹配$字符

来源:百度知道 编辑:UC知道 时间:2024/06/24 05:56:37
比如在下面的一段话中:

$WE$223adsfjladsjfl$w$3

要匹配出$WE$223和$w$3,正则表达式应该怎样写呢?

谢谢!

楼主是要匹配$WE$223和$w$3这两项吧,匹配式如下:
\$(\w){1,3}\$(\w){1,3}
其中,\$匹配“$”,而(\w){1,3}则表示匹配包括下划线的任何单词字符1到3个,由于是连续出现\$,因此,也可以改写为:
(\$(\w){1,3}){2}
我在Excel中的VBA中测试成功,代码如下:
Sub Regs()
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.regexp")
Dim s, mat
s = "$WE$223adsfjladsjfl$w$3"
RegEx.Pattern = "(\$(\w){1,3}){2}"
RegEx.Global = True
Set mat = RegEx.Execute(s)
For Each m In mat
MsgBox m
Next
Set RegEx = Nothing
End Sub

\$WE\$223
\$w\$3

试试把 ` 在元字符前面加上 \ 为转义

字符转义
如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没法指定它们,因为它们会被解释成其它的意思。这时你就必须使用\来取消这些字符的特殊意义。因此,你应该使用\.和\*。当然,要查找\本身,你也得用\\.

例如:www\.unibetter\.com匹配www.unibetter.com,c:\\Windows匹配c:\Windows。