我想将 java 正则表达式转换为 php 正则表达式。但我收到错误“- 文本范围乱序”
这是JAVA正则表达式
"[^\\u0020-\\u007F\u011f\u00fc\u015f\u00f6\u00e7\u011e\u00dc\u015e\u0130\u00d6\u00c7\u0131]";
这是 PHP 正则表达式
preg_replace("/[^\\x{0020}-\\x{007F}\\x{011f}\\x{00fc}\\x{015f}\\x{00f6}\\x{00e7}\\x{011e}\\x{00dc}\\x{015e}\\x{0130}\\x{00d6}\\x{00c7}\\x{0131}]/i","",".çşüiğıyuasdfaadsff");
我收到以下错误“- 文本范围乱序”
有什么帮助吗?
最佳答案
默认情况下,正则表达式引擎将输入字符串和正则表达式解释为 PHP 中的字节数组。您应该收到有关字符值太大的错误,因为 \x{011f}
或 \x{011e}
大于 255(一个字节的最大值) .
要匹配 Unicode 代码点,而不是任意字节序列,请使用 u
标志打开 UTF 模式。
$re = '~[^\x{0020}-\x{007F}\x{011f}\x{00fc}\x{015f}\x{00f6}\x{00e7}\x{011e}\x{00dc}\x{015e}\x{0130}\x{00d6}\x{00c7}\x{0131}]~u';
关于java - preg_match() : Text range out of order on PHP Regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31200935/