Java Regex解析数据并获取所需的标记详细信息

时间:2015-12-24 10:08:11

标签: java regex

我的文字文件

`<product>`

`<label name="hello" id="121"> <title></title> <para></para> </label>`

`<label name="hi" id="122"> <graphics></graphics> <tag></tag> </label>`

`<test> <anchor></anchor> </test>`

`<label name="bye" id="123"> <text></text> <table></table> </label>`

`</product>`

我的输出应为id = 121且id = 123

`<product>`

`<label name="hello" id="121"> <title></title> <para></para> </label>`

`<label name="bye" id="123"> <text></text> <table></table> </label>`

`</product>`

我想得到整个<label>值,其中id = 121和123,这不是xml所以我不能使用DOM或SAX,请帮我使用java正则表达式

2 个答案:

答案 0 :(得分:0)

理想情况您会看到是否可以操作输入,看看是否可以使其成为有效的XML,HTML或其他解析器存在的语言。

如果你不能做其他事情,你可以使用这样的东西:(<label.+?id="121".+<\/label>)(例如here)来获得你所追求的那条线。

此表达式将整行放入正则表达式组,然后您可以通过Java代码进行访问。

答案 1 :(得分:0)

试试这个正则表达式:

(?i)<label[^>]+?id\s*=\s*"(?:121|123)">[\s\S]+?</label>

Regular expression visualization

DEMO