【问题标题】:JavaScript regexp not working in PHPJavaScript 正则表达式在 PHP 中不起作用
【发布时间】:2013-05-07 18:32:19
【问题描述】:

我让这个正则表达式在 JavaScript 中正常工作(开头有空格):

 *\u002D *| *\u003A *| *\u002C *| *\u002F *| *\u2012 *| *\u2013 *| *\u2014 *| *\u2015 *| *\u2018 *| *\u2019 *| *\u0022 *| *\u0027 *

它将一些 unicode 字符(破折号、冒号、撇号等)替换为周围只有一个空格的空格,例如“word: word - word”将是“word word word”。所以 我正在尝试从字符串中删除一些特定的 unicode 字符。

现在我需要在 PHP 中使用这个正则表达式。我知道单个 unicode char 在 PHP 正则表达式中应该是这样的:\x{xxxx} 所以我的新正则表达式看起来像这样,它根本不起作用......

/ *\x{002D} *| *\x{003A} *| *\x{002C} *| *\x{002F} *| *\x{2012} *| *\x{2013} *| *\x{2014} *| *\x{2015} *| *\x{2018} *| *\x{2019} *| *\x{0022} *| *\x{0027} */

【问题讨论】:

  • 在您的 PHP 源代码中,您是否已经转义了反斜杠?我们可以看到您正在使用的实际 PHP 源代码,以及您正在匹配的一些示例文本吗?当你说“它根本不工作”时,我认为这意味着它找不到应该匹配的匹配项。

标签: php javascript regex


【解决方案1】:

只要您对正则表达式使用/u 修饰符,它应该可以正常工作。

ExampleGreek capital letter phi

echo preg_match('/\x{03a6}/u', 'Φ');

【讨论】:

    猜你喜欢
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多