我有以下sourceString中提取鍵值對管之間的一切
|User=gmailUser1|login with password=false|addition information=|source IP location=DE|
我想提取的鍵值對管之間的一切。在這種情況下
- 用戶= gmailUser1
- 登錄,密碼=假
- 附加信息=
- 源IP位置= DE
我的正則表達式是給我的整個字符串。
\|(\b+)=(\b+)\|
我有以下sourceString中提取鍵值對管之間的一切
|User=gmailUser1|login with password=false|addition information=|source IP location=DE|
我想提取的鍵值對管之間的一切。在這種情況下
我的正則表達式是給我的整個字符串。
\|(\b+)=(\b+)\|
嘗試與表達:
/\|([^=|]+)=([^|]*)/g
,或者如果你只是想要一個模式:
\|([^=|]+)=([^|]*)
根據你的環境,你將能夠獲得第1組和2捕獲爲每個鍵值對。
(我不能現在來測試它。)
更新1:我做了一個簡短的測試,並與Wiktor的Stribizew優化適應它。
更新2:使用正則表達式的簡短的說明:
的\b
在你的模式意味着字邊界和不represend的標誌。您不能將其與+
結合使用。另見What is a word boudary。
第一組([^=|]+)
匹配任何不是=
或|
至少有一個字符。
第二組([^|]*)
匹配任何不是=
的零個或多個字符(addition information
具有空值)。
嘗試這種情況:
\w+(=|\s|\w+)
此匹配:
\w+
= numletter字符和匹配組
(=|\s|\w+)
=一個=
唱歌,空白空間或另一numletter組
你應該在管道上標記,而不是在它們之間。你在做什麼語言? –
我正在嘗試使用vbs – user8611198
評論用於提出問題以澄清問題。像這樣的細節應該是問題的主體。假定它存在,您還應該使用VBScript標記。 – jdv