java - preg_match() : Text range out of order on 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}\\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';

RegEx Demo

关于java - preg_match() : Text range out of order on PHP Regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31200935/

相关文章:

java - 如何向调用者线程发出 ExecutorService 已完成任务的信号

java - Android:当我为 ListView 设置 OnClickListener 时

php - 使用 PHP 的文件夹安全性

php - 强制通过 header 缓存动态生成的 JS/CSS 文件不适用于所有浏览器

java - 为什么这个 Java 正则表达式会失败?

java集合排序问题

java.lang.UnsatisfiedLinkError 和 ADB 中的未知错误

php - 标签打印机在实际打印简单标签之前推进 8 个标签

javascript - 如何在javascript中设置货币和时间的格式

如果文件中的项目顺序发生更改,则正则表达式不匹配