我有一個字符串,它看起來像的端部執行以下操作:正則表達式,任選捕捉3組在串
VAL "foo"
VAL2 "bar"
VAL3 "barbar"
OPTIONALVAL "optionalvalue"
SPECIALVAL "optionalval"
哪裏OPTIONALVAL
是可選的(可以或可以不出現),並且如果它出現那麼它有第二列中的值對(示例中的"optionalvalue"
)和SPECIALVAL
也是可選的,但它在第二列中沒有配對值。
這是我的正則表達式,但它不匹配任何東西,如果OPTIONALVAL
丟失(應匹配所有其他不丟失的)!
"^[[:space:]]*"
"(VAL)[[:space:]]*\"(.*)\"[[:space:]]*"
"(VAL2)[[:space:]]*\"(.*)\"[[:space:]]*"
"(VAL3)[[:space:]]*\"(.*)\"[[:space:]]*"
"(OPTIONALVAL)?[[:space:]]*\"(?(7)(.*))\"[[:space:]]*"; // conditional capture
"(SPECIALVAL)?[[:space:]]*";
我在做什麼錯? (我用的升壓正則表達式,:space:
應相當於空格字符。
您正在使用哪種正則表達式引擎? – Vallentin
@Vallentin默認來自 so Perl –