在钥匙值对中提取所有管道之间的所有内容



我有以下succestring

|User=gmailUser1|login with password=false|addition information=|source IP location=DE|

我想在钥匙值对中提取所有管道之间的所有内容。在这种情况下

  1. 用户= gmailuser1
  2. 使用密码登录= false
  3. 加法信息=
  4. 来源IP位置= de

我的正则表达式为我提供了整个字符串。

|(b+)=(b+)|

尝试表达式:

/|([^=|]+)=([^|]*)/g

,或者如果您只想要图案:

|([^=|]+)=([^|]*)

根据您的环境,您将能够为每个键值对捕获第1组和第2组的捕获。

(我现在无法对其进行测试。)

更新1:我进行了简短的测试,并通过优化Wiktor stribizew进行了调整。

更新2:所使用的正则说明的简短说明:

模式中的 b表示 word boundare ,不代表符号。您不能将其与+结合使用。另请参阅什么是boudary。

第一组([^=|]+)与至少一个字符的=|匹配。

第二组([^|]*)匹配任何不是零或更多字符的=addition information具有空值)。

尝试以下:

w+(=|s|w+)

这场比赛:

w+ = numletter chars和匹配组

(=|s|w+) = a =唱歌,空白空间或另一个numletter组

最新更新