簡體   English   中英

正則表達式在引號之間匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM