2012-09-28 87 views
-1

可能重复:
RegEx match open tags except XHTML self-contained tagsJAVA正则表达式返回分隔符之间的链

我想检索字符串分隔符之间......

这里的示例:

<TAG> x1 x2 y1 y2 </TAG> 

我希望我的正则表达式返回TAG

你能还提供了一个链接到一个正则表达式的文件好吗?

+1

[这里是链接](http://www.regular-expressions.info) –

+0

看起来像HTML给我,看看[这里](http://stackoverflow.com/a/1732454/1090657)如果它是。 – quantum

回答

1

只要标签不递归,你所做的就可能是好的,否则它不是一个好主意! (一个有趣的read)。

如果你试图写正则表达式来得到的东西在这些标签之间,如果这是唯一的确切情况下,你想处理:

  1. 您需要在标签捕获名称1.见this - 这是通过括在圆括号中完成的。

regex = "<(.*?)>"

问号是为了确保最短的字符串(非贪婪)匹配 - 这是你的情况下的标签。如果你只是给<。*>它匹配整个表达式,因为默认情况下,正则表达式倾向于匹配最长的字符串。括号存储标签名称,以使其可在步骤2中使用

  • 然后,你需要确保结束标记具有相同的一个 - 这需要将一个反向引用被捕获的组(参见this)。所以,在这里你需要写:
  • regex = "<(.*?)>.*</\1>"

    的\ 1是反向引用在第一组括号捕获的表达。

    我没有自己测试它,但它应该给你一个你需要用来写这样的表达的概念的想法。

    相关问题