JAVA - 我希望从下面的文字中获得关键和价值。有“[key] value”格式

时间:2016-04-25 04:43:36

标签: regex parsing extract extraction regex-group

我想从下面的文字中获取关键和价值。有[key] value格式

例如,

[AA] abcd 1234 !@#$ _+{}[]:"
blah blah
[abc-def] this is also value.
[BB]abcd defg
[CC] (can null)

3 个答案:

答案 0 :(得分:0)

试试这个

\[(?<key>[^]]+)]\s*(?<value>[^\n]+(?:\n[^[][^\n]+)*)

Regex demo

<强>解释
\:逃脱一个特殊字符sample
( … ):捕获小组sample
?:一次或无sample
[^x]:一个不是x sample的字符 +:一个或多个sample \s:“空格字符”:空格,制表符,换行符,回车符,垂直制表符sample
*:零次或多次sample
(?: … ):非捕获组sample

答案 1 :(得分:0)

容易!

^\[([^]]+)\](.+)$

演示: https://regex101.com/r/zB0xC0/1

说明:

  1. ^\[([^]]+)\]^是字符串的开头。 ()是一个捕获组。 [^]]+]以外的任何字符中的一个或多个。
  2. (.+)$$是字符串锚点的结尾。所以基本上它与键后面的其余字符串匹配。

答案 2 :(得分:0)

这将有效

^(?:\[([^]]+)\])?(.*)$

<强> Regex Demo