2017年11月8日 星期三

regular expressions (a|b) and [ab] are the same?

正規式 (a|b) 和 正規式 [ab] 兩者皆可匹配1個a或1個b,所以匹配效果一樣。
但是兩者的語法不同,表達能力也不同,說明如下:
[]表示匹配中括號(bracket)內字元集合的一個字元,所以只能匹配1個字元;
()表示匹配小括號(parenthesis)內直槓(vertical bar,|)隔開的任一正規式,所以可能匹配不止1個字元。

例如: 
1.正規式 hello 匹配 hello 5個字元
2.正規式 [hello] 匹配 h或e或l或o 任1個字元
3.正規式 (hello) 匹配 hello 5個字元
4.正規式 (hello|world) 匹配 hello 或 world 5個字元
5.正規式 ([hello]|world) 匹配 h或e或l或o 任1個字元  或 world 5個字元

參考:
difference b/w [ab] and (a|b) in regex match?

沒有留言: