gpt4 book ai didi

java - 如何更改此正则表达式以正确提取标签属性 - 应该很简单

转载 作者:行者123 更新时间:2023-11-30 06:00:34 25 4
gpt4 key购买 nike

我需要“获取”自定义 HTML 标记的属性。我知道这种问题以前被问过很多次,但正则表达式确实让我头疼,而且我似乎无法让它工作。

我需要使用的 XML 示例是

<!-- <editable name="nameValue"> --> - content goes here - <!-- </editable> -->

我希望能够获取 name 属性的值,在本例中为 nameValue。我所拥有的如下所示,但这会返回一个空值。

我的正则表达式字符串(对于 Java 应用程序,因此使用\来转义 ")是:
"(.)?<!-- <editable name=(\".*\")?> -->.*<!-- </editable> -->(.)?"

我正在尝试使用引号获取属性,我认为这是最容易匹配的最通用模式。好吧,这是行不通的,任何帮助都会帮助我保持头发。

最佳答案

我认为您不需要 (.)? 在正则表达式的开头和结尾。并且您需要放入一个捕获组以仅获取 content-goes-here 位:

这对我有用:

String xml = "RANDOM STUFF<!-- <editable name=\"nameValue\"> --> - content goes here - <!-- </editable> -->RANDOM STUFF";
Pattern p = Pattern.compile("<!-- <editable name=(\".*\")?> -->(.*)<!-- </editable> -->");
Matcher m = p.matcher(xml);
if (m.find()) {
System.out.println(m.group(2));
} else {
System.out.println("no match found");
}

这打印:

 - content goes here - 

关于java - 如何更改此正则表达式以正确提取标签属性 - 应该很简单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1005803/

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