使用php预匹配,警告
要匹配的字符串:使用php预匹配,警告,php,preg-match,Php,Preg Match,要匹配的字符串:http://127.0.0.1:8008/BeiJing/FangChan/ 我使用preg_match()进行测试 但是得到一个警告:preg_match()[function.preg match]:未知修饰符“(” 有谁能帮我写这个正则表达式,使它对preg_match函数有效吗?我尝试了很多不同的想法,但我对正则表达式的知识还不是很渊博。你需要在它前面放一个\来避开你使用的/You。或者将第一个和最后一个/改成其他类似的东西: if (preg_match('/^([^
http://127.0.0.1:8008/BeiJing/FangChan/
我使用preg_match()进行测试
但是得到一个警告:preg_match()[function.preg match]:未知修饰符“(”
有谁能帮我写这个正则表达式,使它对preg_match函数有效吗?我尝试了很多不同的想法,但我对正则表达式的知识还不是很渊博。你需要在它前面放一个\来避开你使用的/You。或者将第一个和最后一个/改成其他类似的东西:
if (preg_match('/^([^\/])/([A-Z])([^\/]+)/([^\/]+)/$/',"http://127.0.0.1:8008/BeiJing/FangChan/",$match))
print $match[0];
else
print 'not match';
但是此regexp将与url不匹配。您需要通过在其前面放置\来避开您使用的/或将第一个和最后一个/更改为其他类似的内容:
if (preg_match('/^([^\/])/([A-Z])([^\/]+)/([^\/]+)/$/',"http://127.0.0.1:8008/BeiJing/FangChan/",$match))
print $match[0];
else
print 'not match';
但是这个regexp将与url不匹配。
/
在您的示例中指示模式的开始和结束,模式之后的任何内容都是一个修饰符
因此:
if (preg_match('|^([^/])/([A-Z])([^/]+)/([^/]+)/$|',"http://127.0.0.1:8008/BeiJing/FangChan/",$match)) print $match[0]; else
读取如下内容:
/^([^/])/([A-Z])([^/]+)/([^/]+)/$/
使用修饰符([A-Z])([^/]+)/([^/]+)/$/
您必须退出所有/
,或更改开始和结束指示器:
/^([^/])/
/
是在您的示例中指示模式开始和结束的内容,模式之后的任何内容都是一个修饰符
因此:
if (preg_match('|^([^/])/([A-Z])([^/]+)/([^/]+)/$|',"http://127.0.0.1:8008/BeiJing/FangChan/",$match)) print $match[0]; else
读取如下内容:
/^([^/])/([A-Z])([^/]+)/([^/]+)/$/
使用修饰符([A-Z])([^/]+)/([^/]+)/$/
您必须退出所有/
,或更改开始和结束指示器:
/^([^/])/
你可能应该看看这个函数。这是对正则表达式的一个很好的介绍。正则表达式应该匹配什么?它与URL不匹配。它匹配
a/Bc/d/
,只要B大写,但它与任何URL都不匹配。如果你移除锚定^
和$
,它匹配8/BeiJing/FangChan/
你可能应该看看这个函数。这是对正则表达式的一个很好的介绍。正则表达式应该匹配什么?它与URL不匹配。它匹配a/Bc/d/
,只要B大写,但它与任何URL都不匹配。如果你移除锚定^
和$
,它匹配8/BeiJing/FangChan>/代码>