[英]Matching only one quotation mark
我想匹配三個案例。 兩個引號,左引號,右引號:
/(?<=["])(.*?)(?=["])/g // "Dialogue."
/(?<=["])(.*?)(?!["])/g // "Dialogue.
/(?<!["])(.*?)(?=["])/g // Dialogue."
僅匹配一個引號的正則表達式不匹配任何內容:
為什么會這樣,如何解決?
我想匹配三個案例。 兩個引號,左引號,右引號:
您可以通過交替使用這種簡化的方法:
^(?:"[^"]*"?|[^"]*")$
正則表達式詳細信息:
^
: 開始(?:
: 啟動非捕獲組
"
: 匹配一個"
[^"]*
: 匹配 0 個或多個不是"
"?
: 匹配一個可選的最后一個"
|
: 或者[^"]*
: 匹配 0 個或多個不是"
"
: 匹配一個"
)
: 結束非捕獲組$
: 結束您可以使用
^(?![^"](?:.*[^"])$)"?[^"]*"?$
請參閱正則表達式演示。
詳情:
^
- 字符串的開頭(??[^"](:..*[^"])$)
- 如果第一個和最后一個字符不是"
"?
- 一個可選的"
[^"]*
- 除"
之外的零個或多個字符"?
- 一個可選的"
$
- 字符串結束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.