代码之家  ›  专栏  ›  技术社区  ›  BaronGrivet

在preg\u replace regex模式中检测正斜杠时出现问题

  •  0
  • BaronGrivet  · 技术社区  · 15 年前

    我在一个字符串上运行preg\u replace,该字符串可能包含街道号码。我使用的模式是:

    ([A-Za-z0-9]*)/i
    

    这对于1、1a、123等数字很有效。

    我试着给图案加上一个正斜杠,像这样:

    ([A-Za-z0-9\/]*)/i
    

    但它并没有得到像1/54B这样的数字。

    关于我应该用什么有什么想法吗?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Matthew Flaschen    15 年前

    尝试

    preg_replace('#([A-Za-z0-9/]*)#i', $repl, $subj);
    

    使用备用分隔符使其更简单。

        2
  •  0
  •   BaronGrivet    15 年前

    我意识到在这个例子中我忽略了正斜杠被翻译成URL友好的代码(%2F),所以

    ([A-Za-z0-9\%]*)/i
    

    为这种情况工作。是的,我觉得自己很蠢。

    谢谢你给马修有用的提示。我要把它归档。