正则表达式在特定标题下取特定字符串

时间:2014-09-04 07:42:41

标签: java regex

我有一个这样的字符串:

Heading_1:
   content1: some value
   content1: some value
   ...
   ...
Heading_2:
  content_1: some value
  content_2: some value
  ....

Heading_x:
  content_1: some value
  ....
  content_x: some value
  ...

Heading_n:
  ........
  ........

我想找到"一些价值"使用正则表达式在heading_x下的content_x。 我确实喜欢这个:

"((?=heading_x:)([\\w\\W\n\\s+]content_x:\\s+(.*)\n))"

但它给出了null。请告诉我哪里出错了。

2 个答案:

答案 0 :(得分:1)

Heading_x:((?!Heading_\d+:)[\s\S])*? content_x.*

Regular expression visualization

Debuggex Demo

答案 1 :(得分:1)

你可以试试下面的正则表达式,

(?s)Heading_x:.*?content_x:\s*([^\n]*)

Java正则表达式,

(?s)Heading_x:.*?content_x:\\s*([^\\n]*)

DEMO

从组索引1获取content_x的值。