我正在學習正則表達式,並且我有一個問題。知道組中哪個表達式匹配
假設我有以下xml應答器。
<xml x="5"/>
x的值可以讓我們說foo
或bar
,所以看完我的文件,如果我能
<xml foo="6"/>
<xml bar="7"/>
我做了一個正則表達式匹配這個表達式和捕捉引號值。
print $1."\n" if /<xml\s(?:foo|bar)=\"(\d+)\"\/>/;
,輸出是
6
7
現在的問題是,有沒有辦法知道,如果這是不是foo
或bar
是取得了正則表達式匹配?
我問這個,因爲我有兩個數組時,我需要一個推動的foo
和另一個的bar
值的值我可以這樣做:
push @fooValues, $1 if /<xml\sfoo=\"(\d+)\"\/>/;
push @barValues, $1 if /<xml\sbar=\"(\d+)\"\/>/;
但我覺得這不是要走的路,所以我想知道是否有辦法知道哪個組匹配。
'print「$ 1 $ 2 \ n」if/ /;' –