【问题标题】:Problem detecting forward slash in preg_replace regex pattern在 preg_replace 正则表达式模式中检测正斜杠的问题
【发布时间】:2010-07-20 09:49:29
【问题描述】:
我在一个可能包含街道号码的字符串上运行 preg_replace。我使用的模式是:
([A-Za-z0-9]*)/i
这适用于 1、1a、123 等数字。
但是它不会接收像 1/54B 这样的街道号码
我尝试像这样在模式中添加正斜杠:
([A-Za-z0-9\/]*)/i
但它没有选择像 1/54B 这样的数字。
关于我应该使用什么的任何想法?
【问题讨论】:
标签:
php
regex
preg-replace
【解决方案1】:
试试
preg_replace('#([A-Za-z0-9/]*)#i', $repl, $subj);
使用替代分隔符使其更简单。
【解决方案2】:
我意识到在这个例子中我忽略了正斜杠被翻译成 URL 友好代码 (%2F) 所以
([A-Za-z0-9\%]*)/i
适用于这种情况。是的,我觉得自己很愚蠢。
感谢 Matthew 提供的有用提示。打算把那个归档。