首页 / 正则 / PHP正则表达式:匹配字符集或字符串结尾
PHP正则表达式:匹配字符集或字符串结尾
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP正则表达式:匹配字符集或字符串结尾,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1235字,纯文字阅读大概需要2分钟。
内容图文
![PHP正则表达式:匹配字符集或字符串结尾](/upload/InfoBanner/zyjiaocheng/725/7e4aed502fe94a919df5af9638699627.jpg)
我将代码从Nodejs移植到PHP并继续使用此正则表达式获取错误:
^ / [A-Z0-9] {6}([^ 0-9A-Z] | $)
PHP抱怨美元符号:
Unknown modifier ‘$’
在javascript中,我能够检查字符串是否以[^ 0-9a-z]或END OF STRING结尾
如何在PHP中使用preg_match执行此操作?
我的PHP代码如下所示:
<?
$sExpression = '^/[a-z0-9]{6}([^0-9a-z]|$)';
if (preg_match('|' . $sExpression . '|', $sUrl)) { ... }
?>
JS代码与此类似:
var sExpression = '^/[a-z0-9]{6}([^0-9a-z]|$)';
var oRegex = new RegExp(sExpression);
if (oRegex.test(sUrl)) { ... }
提前致谢.
解决方法:
要匹配以斜杠开头的字符串,然后是6个字母数字,然后是字符串结尾或不是字母数字的字符串:
preg_match('~^/[a-z0-9]{6}([^0-9a-z]|$)~i', $str);
原始JavaScript可能使用了新的RegExp(< expression>),但PCRE需要正确封装表达式;这些是我在上面的代码中添加的?字符.顺便说一句,我通过使用i修饰符使表达式不区分大小写;如果不需要,请随意将其移除.
更新
你正在使用|作为封闭;因此,您应该已经对表达式中的管道字符进行了转义,但这样做会改变其含义.通常最好选择在表达式中没有特殊含义的分隔符;它还有助于选择在表达式中不会出现的分隔符,例如:我的选择?避免不得不逃避任何角色.
PCRE中的表达式可以概括为:
<start-delimiter> stuff <end-delimiter> modifiers
通常,起始分隔符与结束分隔符相同,除了诸如[expression] i或{expression} i之类的情况,其中左大括号与右大括号匹配:)
内容总结
以上是互联网集市为您收集整理的PHP正则表达式:匹配字符集或字符串结尾全部内容,希望文章能够帮你解决PHP正则表达式:匹配字符集或字符串结尾所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。