fir*_*ire 7 php regex preg-match
是否有可能做一个preg_match不应该匹配的东西,同时仍然返回真实?
例如,目前我们有......
if (preg_match('#^Mozilla(.*)#', $agent)) {
Run Code Online (Sandbox Code Playgroud)
我们想检查Mozilla字符串是否不在$ agent中但仍然preg_match返回true.
所以我们不能把它改成......
if (!preg_match('#^Mozilla(.*)#', $agent)) {
Run Code Online (Sandbox Code Playgroud)
谢谢
Jus*_*gan 12
你想要的是一个负面的先行,语法是:
if (preg_match('#^(?!Mozilla).#', $agent)) {
Run Code Online (Sandbox Code Playgroud)
实际上,你可能只是#^(?!Mozilla)#因为这个而逃脱.我不知道PHP会如何看待一个只有零宽度令牌的模式,但我已经在JavaScript中测试过它并且工作正常.
如果你想确保Mozilla没有出现在字符串中的任何地方,你可以使用这个......
if (preg_match('#^((?!Mozilla).)*$#', $agent)) {
Run Code Online (Sandbox Code Playgroud)
......但只有你不能使用它!
if (strpos($agent, 'Mozilla') !== false) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26893 次 |
| 最近记录: |