簡體   English   中英

只匹配一個引號

[英]Matching only one quotation mark

我想匹配三個案例。 兩個引號,左引號,右引號:

/(?<=["])(.*?)(?=["])/g // "Dialogue."
/(?<=["])(.*?)(?!["])/g // "Dialogue.
/(?<!["])(.*?)(?=["])/g // Dialogue."

僅匹配一個引號的正則表達式不匹配任何內容:

https://regexr.com/5sd5u

為什么會這樣,如何解決?

我想匹配三個案例。 兩個引號,左引號,右引號:

您可以通過交替使用這種簡化的方法:

^(?:"[^"]*"?|[^"]*")$

正則表達式演示

正則表達式詳細信息:

  • ^ : 開始
  • (?: : 啟動非捕獲組
    • " : 匹配一個"
    • [^"]* : 匹配 0 個或多個不是"
    • "? : 匹配一個可選的最后一個"
    • | : 或者
    • [^"]* : 匹配 0 個或多個不是"
    • " : 匹配一個"
  • ) : 結束非捕獲組
  • $ : 結束

您可以使用

^(?![^"](?:.*[^"])$)"?[^"]*"?$

請參閱正則表達式演示

詳情

  • ^ - 字符串的開頭
  • (??[^"](:..*[^"])$) - 如果第一個和最后一個字符不是"
  • "? - 一個可選的"
  • [^"]* - 除"之外的零個或多個字符
  • "? - 一個可選的"
  • $ - 字符串結束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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