gpt4 book ai didi

java - Android Studio 中的正则表达式模式抛出错误 : This named group syntax is not supported

转载 作者:太空狗 更新时间:2023-10-29 15:45:36 25 4
gpt4 key购买 nike

我有以下正则表达式模式,它在 Android Studio 中抛出错误 This named group syntax is not supported.

Pattern pattern = Pattern.compile("(?<new>network=\\{|(?!^)\\G)\\s*(?<key>\\w+)=\"?(?<value>[^\"\n]+)\"?");

但在 Ideone 示例中是否有效:

http://ideone.com/rMLk3K

我尝试使用 Java 的正则表达式测试来解决它

http://www.regexplanet.com/advanced/java/index.html

然后出现以下错误:

Illegal repetition near index 17 "(?<new>network=\\{|(?!^)\\G)\\s*(?<key>\\w+)=\"?(?<value>[^\"\n]+)\"?" 

请问有什么问题吗?

非常感谢您的任何建议。

最佳答案

Android 通过围绕 ICU4C 编写包装器来实现 Pattern 类。在 ICU 55 之前,ICU4C 不支持命名捕获组.

在回答时(2015 年 9 月 25 日),Android 代码库是 stuck at ICU 49.1.1在撰写本文时的最新标签 (android-5.1.1_r18) 上,因此正则表达式无法编译。从那以后,安卓就有了updated to ICU 55.1在 marshmallow-release 分支中,因此正则表达式应该从这个版本的 Android 编译。但是,即使正则表达式编译成功,如果不更改 Java 端的 API,您也无法通过名称寻址捕获组。

现在,只需编写不带命名组的正则表达式,并按正常方式按组号提取匹配的内容:

Pattern.compile("(network=\\{|(?!^)\\G)\\s*(\\w+)=\"?([^\"\n]+)\"?");

您可以分别访问编号为1、2、3的组newkeyvalue

关于java - Android Studio 中的正则表达式模式抛出错误 : This named group syntax is not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32776168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com