0
分隔的字段我試圖驗證字符串匹配特定模式。但是,如果第三個領域在那裏,它必須是ABC
。我想這樣的:正則表達式與固定值
^#:[^:]+:?([^:]+)?:?(ABC)?:?([^:]*:?)*$
但它也匹配線,其中不完全具備ABC
的第三場。
分隔的字段我試圖驗證字符串匹配特定模式。但是,如果第三個領域在那裏,它必須是ABC
。我想這樣的:正則表達式與固定值
^#:[^:]+:?([^:]+)?:?(ABC)?:?([^:]*:?)*$
但它也匹配線,其中不完全具備ABC
的第三場。
請試試這個:
^#((((:[^:]+))((:[^:]*))?)|((((:[^:]+))(:[^:]*))((:(ABC)?)(:[^:]*)*)?))$
你可以使用類似的表達式:
(?x) ^#:[^:]+ (?: :[^:]+ (?: :ABC (?: :[^:]*)* )? )? $
本書雖然這可能是更好的(更具可讀性)使用其他編程結構來完成。 Perl的例子:
my @l = split /:/, '#:XY1:XY2:ABC:::xy::';
if($l[0] eq '#' && $l[3] eq 'ABC'){
# do stuff
}