我正在尝试使用带有正则表达式的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()来获得这种行为?
答案 0 :(得分:3)
从你的问题来看,你有点不清楚。你的第二个正则表达式匹配子字符串
$45
如果要避免这种情况,请使用锚点^和$以确保匹配整个字符串。类似的东西:
^\(\$[1-9A-Za-z]+,\s*[xX]\s*\)$