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

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


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

现在,我需要在PHP中使用此regexp。我知道单个unicode char在PHP regexp中应该是这样的:\ x {xxxx},所以我的新regexp看起来是这样,并且根本不起作用...

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

最佳答案

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

ExampleGreek capital letter phi

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

09-25 18:08