2 回答

TA貢獻(xiàn)1869條經(jīng)驗 獲得超4個贊
Using[?"](.*)[?"]
將匹配其中之一,?"
然后匹配除換行符之外的任何字符 0+ 次,然后再次?"
匹配字符串中的最后一次出現(xiàn)。它可以過度匹配并且不保證伴隨的結(jié)束字符。
要在所有示例中獲得價值,您可以使用捕獲組并將可選雙引號("?)
與反向引用\1
匹配,以解釋匹配的結(jié)束雙引號。
如果您只想匹配沒有任何空格的值并且值本身不能包含任何*|"
您可以使用的值:
this-is-a-set-syntax:\h+([*|"]?)([^\s*|"]+)\1(?!\S)
解釋
this-is-a-set-syntax:\h+
匹配字面后跟 1+ 個水平空白字符([*|"]?)
第 1 組,匹配一個可選的*
|
或?
([^\s*|"]+)
第 2 組,匹配除空白字符以外的任何字符 1+ 次,*
|
或?
\1
反向引用第 1 組中準(zhǔn)確捕獲的內(nèi)容以獲得伴隨的結(jié)束字符(?!\S)
負(fù)前瞻,斷言右邊的不是非空白字符

TA貢獻(xiàn)1852條經(jīng)驗 獲得超7個贊
您可以使用分支重置組來匹配兩個選項,其中組共享相同的索引并匹配和捕獲分隔子字符串或 1 個或多個非空白字符:
this-is-a-set-syntax:\s*(?|(["|*])(.*?)\1|()(\S+))
細(xì)節(jié)
this-is-a-set-syntax:
- 一些字符串\s*
- 0+ 個空格(?|
- 分支復(fù)位組的開始(["|*])
- 第 1 組:指定字符之一:"
,|
或*
(.*?)
- 第 2 組:除換行符以外的任何 0 個或更多字符,盡可能少\1
- 與第 1 組相同的值|
- 或者()
- 匹配空字符串的虛擬組 1(\S+)
- 第 2 組:除空格之外的一個或多個字符)
- 分支復(fù)位組結(jié)束。
- 2 回答
- 0 關(guān)注
- 150 瀏覽
添加回答
舉報