如何使用正则表达式捕获任何字符

时间:2010-03-05 01:03:12

标签: regex

我想捕获XML标记中的属性中的文本。那是

<tag1 name="tag^*&,+">

我想捕获name属性中的值(在本例中为tag^*&,+)。这个正则表达式

name=\"([a-z0-9]+)\"  
如果属性中的文本是字母数字,

将仅返回值。是否有任何语法将返回捕获的值,无论符号和字符是什么?谢谢!

5 个答案:

答案 0 :(得分:6)

冒着击败死马的风险,不要试图用正则表达式“解析”XML。使用您的编程语言的XML库。然后,选择所有tag1元素并获取其name属性的内容非常简单。

您不仅更容易编码,而且您不必处理令人讨厌的事情,例如跨越多行的字符串,字符串转义(例如&quot;),导致正则表达式失败的奇怪边缘情况等等。

答案 1 :(得分:1)

您应该使用:

name=\"([^\"]+)\"

换句话说,捕获组可以被描述为“除了结束引用之外的任何字符”中的至少一个

答案 2 :(得分:1)

查看regular-expressions.info

这将做你想要的:

([^"]+)

答案 3 :(得分:1)

您似乎更善于使用 XML Parser 我不知道您使用的语言,但是每种语言都有一个XML解析器。

答案 4 :(得分:0)

.将匹配任何角色。

name = \"(.+)\"