我有以下sourceString
|User=gmailUser1|login with password=false|addition information=|source IP location=DE|
我想在键值对中的管道之间提取所有内容。在这种情况下
我的正则表达式模式给了我整个字符串。
\|(\b+)=(\b+)\|
答案 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+)
= =
唱歌,空格或其他编号组