基于先前值的正则表达式匹配

时间:2012-04-19 18:42:17

标签: regex

是否可以创建一个仅与值匹配的正则表达式(如果前面没有其他值)?例如,如果?前面没有.php,则仅测试为true。如下所示:

/(?!\.php)\?/.test( 'mypage.php?call=here' ) == false;
/(?!\.php)\?/.test( 'otherpage.asp?call=here' ) == true;

我已尝试使用前瞻?!?:,但到目前为止还未能找到有效的组合。

1 个答案:

答案 0 :(得分:2)

这将匹配其中没有?的字符串,或者?之前没有.php的字符串:

^(?!.*\.php\?)

这是一个版本,还需要?在字符串中:

^(?!.*\.php\?).*\?