如何在 MATLAB 中选择正则表达式中匹配后的单词?

问题描述 投票:0回答:1

我目前正在更改 YAML 文件的内容,方法是将其读入 MATLAB 并通过 REGEXP 命令查找要搜索的文本的当前索引。

描述文件如下所示:

name:"XYZ"   port:5672    host:"server.com"

整个描述文件只有一行。我目前在 MATLAB 中使用以下 REGEX 命令:

^\s+name:\s*".+"

这里的问题是我只想选择名称:“XYZ”或主机:“server.com”,但上面的命令选择整个文本。

有人可以帮我解决这个问题吗?

谢谢, 德鲁夫

regex matlab yaml
1个回答
1
投票

尝试:

\s*name:\s*"[^"]+"

参见:regex101

\s*host:\s*"[^"]+"

参见:regex101


说明

  • \s*
    :任意数量的前面的空格,后跟...
  • name:
    /
    host:
    :关键字“名称:”或“主机:”...
  • \s*
    :然后再次在...
  • 之前添加任意数量的空格
  • "
    :带...的字面引号
    • [^"]+
      : 里面没有报价
  • "

有关否定字符类的更多信息,请参阅regular-expressions.info/charclass.html

© www.soinside.com 2019 - 2024. All rights reserved.