我想捕获XML标记中的属性中的文本。那是
<tag1 name="tag^*&,+">
我想捕获name属性中的值(在本例中为tag^*&,+
)。这个正则表达式
name=\"([a-z0-9]+)\"
如果属性中的文本是字母数字,将仅返回值。是否有任何语法将返回捕获的值,无论符号和字符是什么?谢谢!
答案 0 :(得分:6)
冒着击败死马的风险,不要试图用正则表达式“解析”XML。使用您的编程语言的XML库。然后,选择所有tag1
元素并获取其name
属性的内容非常简单。
您不仅更容易编码,而且您不必处理令人讨厌的事情,例如跨越多行的字符串,字符串转义(例如"
),导致正则表达式失败的奇怪边缘情况等等。
答案 1 :(得分:1)
您应该使用:
name=\"([^\"]+)\"
换句话说,捕获组可以被描述为“除了结束引用之外的任何字符”中的至少一个
答案 2 :(得分:1)
答案 3 :(得分:1)
您似乎更善于使用 XML Parser 我不知道您使用的语言,但是每种语言都有一个XML解析器。
答案 4 :(得分:0)
.
将匹配任何角色。
name = \"(.+)\"