Java preg_match():PHP正则表达式上的文本范围无序
我想将java正则表达式转换为php正则表达式。但我得到了错误“-文本范围混乱” 这是JAVA正则表达式Java preg_match():PHP正则表达式上的文本范围无序,java,php,regex,Java,Php,Regex,我想将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}\
"[^\\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';
您从何处获得此错误?在将正则表达式字符串粘贴到regex101.com中时?尝试添加u修饰符,但我不确定为什么会出现此错误:在ideone上,我得到了以下
PHP警告:preg_replace():编译失败:在PHP中第3行的/home/ivJ7iQ/prog.PHP中的\x{}或\o{}中的字符值在偏移量26处太大。OP为什么要使用此正则表达式?你改变了什么?为什么?