【问题标题】:Regex to capture TEST[some text] separately正则表达式分别捕获 TEST[some text]
【发布时间】:2015-05-02 20:56:24
【问题描述】:

努力创建正则表达式来捕捉这一点:

TEST[some text] 

还有这些:

TEST[some text]    |    TEST[some text]     |    TEST[some text]

但要将最后一组捕获为 3 个单独的项目。

我已经到了/([A-Z]+\[.+\])/g,但这将上面的行捕获为 1 项。

它也不会捕获嵌套项目,例如:

A[
  B[text]
  More text.
  C[and some more text]
] 

实际上,我想分别捕获A(及其括号内的相关值)、B(及其值)、More text.C(及其值)。

基本上结构如下:

KEY[VALUE]

VALUES 可以包含更多的 KEY/VALUE 对。

也许有一些我不知道的更通用的方法来创建/解析这些文本结构(即像 YAML 文件)。有什么建议吗?

抱歉,这个问题相当漫无边际和开放式的问题。

【问题讨论】:

  • 请阅读this post 的第一个项目符号 - 你想使用什么正则表达式flavor

标签: regex parsing text configuration yaml


【解决方案1】:

确实有需要考虑的口味,但是您要寻找的东西可以在没有太多口味特定的东西的情况下完成

/([A-Z]+\[[^\]]+\])/g

由于[^\]]+ 将匹配任何非"]" 字符,因此您不会得到嵌套的字符。但是,它与您示例中的 A 不匹配,但我想这也不需要?

【讨论】:

    猜你喜欢
    • 2020-02-17
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多