Ruby正则表达式,有没有办法只匹配文字匹配?

时间:2010-12-21 15:23:31

标签: ruby regex

我正在尝试使用带有正则表达式的case / when语句进行解析。我在比赛中遇到了一些麻烦,因为它会给我一个匹配,即使它不是一个字面匹配。

示例:

如果我输入($ 45,x),我会回来:“地址模式:间接,x - >值:45”来自此正则表达式:

/[(][$][1-9a-fA-F]{1,2}\s*,\s*[xX]\s*[)]/

现在,如果我输入($ 45,p),我得到这个正则表达式的匹配:

/[$][1-9a-fA-F]{2,4}/

这是可以理解的,但我希望这场比赛只能看到文字比赛。如果有额外的字符与正则表达式不完全匹配,我希望匹配函数返回false。

是否有其他一些函数,比如match()或额外的参数可以给match()来获得这种行为?

1 个答案:

答案 0 :(得分:3)

从你的问题来看,你有点不清楚。你的第二个正则表达式匹配子字符串

$45

如果要避免这种情况,请使用锚点^和$以确保匹配整个字符串。类似的东西:

^\(\$[1-9A-Za-z]+,\s*[xX]\s*\)$