首页 > 解决方案 > 正则表达式:获取键值对格式的值

问题描述

我有以下字符串:

"
key1: fkdfjdkfkdfjkdfkjdkfjdfkjdfkdjfkdjfkdfjkdfdkfjkdf
key2: dskfjdfjdkfkjdfkdjfkdfjdfkdfkdkjfkdfjkdf
key3: sdfsdfasdfadfs
asdfadsfsdfasdfadsfdf
key4: sdfjdsfhhdjfhsdjfsdfh
skdfjdsjkfjds
"

什么是仅捕获键值的有效正则表达式?

标签: regex

解决方案


如果您使用的是 PCRE 引擎,则以下正则表达式可以解决您的问题:

/(?:key\d+: )(.*?)(?=\nkey\d:|$)/gs

在这里试试

解释:

  • (?:key\d+: ) - 匹配密钥。
  • (.*?) - 捕获值。
  • (?=\nkey\d:|$) - 找到下一个键或字符串结尾时停止捕获值。
  • gs标志 - 全局标志启用多个捕获,单行标志使点运算符能够匹配值中的新行。

推荐阅读