2016-01-05 32 views

回答

2

首先,使用+量詞與\w到1個或多個單詞字符匹配(你僅與匹配)。這就是爲什麼你只能得到ss(見your regex in action捕獲ss作爲組1和s作爲組2)。

及用途:

(\w+)s\b 

隨着\0 \1更換其中\0反向引用了整場比賽,和\1反向引用什麼用(\w+)抓獲。見demo here

或者,如果是Perl,請使用((\w+)s)\b並用\1 \2(請參閱demo)替換。

請參閱demo

3

你在那個正則表達式測試器裏誤讀了一些東西。實際上,\1等於ss,而\2等於s。這是因爲你只匹配兩個字符,\ws。即使您向\w(即(\w+(s)\b))添加了1+量詞,您仍然只會匹配Dresss,因爲第二個捕獲組實際上只是捕獲s


如果將這些捕獲組移動一點,就可以成功捕獲「Dress」和「Dres」。一個快速的方面說明,你可以得到整個正則表達式與\0匹配,所以嵌套的捕獲組在這裏有點不必要。

比賽:(\w+)s\b

替換:\0 \1

Output:連衣裙DRES

相關問題