【问题标题】:JAVA - I want to get key and value from below text. There is "[key] value" formatJAVA - 我想从下面的文本中获取键和值。有“[key] value”格式
【发布时间】:2016-04-25 04:43:36
【问题描述】:

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

例如,

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

【问题讨论】:

  • 该输入的输出是什么?

标签: regex parsing extract extraction regex-group


【解决方案1】:

试试这个

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

Regex demo

说明:
\:转义特殊字符sample
( … ):捕获组sample
?:一次或无@987654324 @
[^x]:一个非x字符sample
+:一个或多个sample
\s:“空白字符”:空格、制表符、换行符、回车, 垂直制表符sample
*: 零次或多次sample
(?: … ): 非捕获组sample

【讨论】:

  • 我想要下面的输出。 AA -> "abcd 1234 !@#$ _+{}[]:" blah blah" abc-def -> 这也是值。BB -> abcd defg CC ->(可以为空)
【解决方案2】:

简单!

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

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

解释:

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

【讨论】:

    【解决方案3】:

    这会起作用

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

    Regex Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      • 2017-09-12
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      相关资源
      最近更新 更多