[英]Regex with a match between quotes
我試圖找到解決我的 RegEx 問題的方法,但我找不到答案。
我的目標字符串是這樣的:
"Elevator" <sip:103@192.168.1.1>;tag=343483547
我希望我的匹配組是: - 電梯 - 103
但是當我使用這個正則表達式時:
"(.*)"?<sip:(\d*)@.*
然后我在第一場比賽中收到了不需要的報價。 結果是: - 電梯” - 103
我無法讓它工作。 我嘗試了最明顯的事情,比如
"([^"]*)"?<sip:(\d*)@.*
但是第一場比賽完全消失了
我究竟做錯了什么。
您正在使"
成為可選,並且.*
是貪婪匹配,直到遇到<
。
如果引號是不需要的,您可以更新它以使 " 不可選並匹配<
之前的空格。
"(.*?)"
部分也可以匹配為([^"]+)
如果要匹配 1 個或多個數字,請使用\\d+
"(.*?)" <sip:(\d+)@
正則表達式演示(單擊表選項卡)
您需要考慮可選的"
和以下<
字符之間的空格。
用
"([^"]*)"?\s*<sip:(\d*)@.*
查看正則表達式演示
細節
"
- 一個"
字符([^"]*)
- 第 1 組:除"
之外的任何零個或多個字符"?
- 一個可選的"
字符\\s*
- 0+ 個空格<sip:
- <sip:
子串(\\d*)
- 第 2 組:零個或多個(用+
替換*
以匹配一個或多個)數字@.*
- @
和該行的其余部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.