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

时间:2017-09-14 19:45:06

标签: regex vbscript

我有以下sourceString

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

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

  1. 用户= gmailUser1
  2. 使用密码= false登录
  3. 添加信息=
  4. 来源IP位置= DE
  5. 我的正则表达式模式给了我整个字符串。

    \|(\b+)=(\b+)\|
    

2 个答案:

答案 0 :(得分:1)

尝试使用表达式:

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

或者如果你只是想要这个模式:

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

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

(我现在无法测试它。)

更新1:我做了一个简短的测试,并根据Wiktor Stribizew的优化进行了调整。

更新2:使用的正则表达式的简短说明:

模式中的\b表示字边界,并不代表符号。您无法将其与+结合使用。另请参阅What is a word boudary

第一组([^=|]+)匹配任何非=|且至少包含一个字符的内容。

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

答案 1 :(得分:0)

试试这个:

\w+(=|\s|\w+)

这场比赛:

\w+ = numletter chars和匹配的组

(=|\s|\w+) = =唱歌,空格或其他编号组