通常我們在使用正規表示法(Regular expression)的時候,如果需要讓前面出現的字串與後面字串相符,就需要使用反向參考(Backreference)來達成
像是日期格式中如果使用分隔符號則我們通常會預期是相同符號(EX: 2020-02-19 or 2020/2/19)
如果要透過正規表示法做到這樣功能,就可以透過反向參考來達成
底下的pattern就是我用來 parse 日期的範例
((19[7-9]\d|20\d{2})|\d{2})([- /.])(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|(Nov|Dec)(?:ember)?|([0]?[0-9]{1}|[1]{1}[0-2]{1}))\3([0]?[0-9]{1}|[1-2]{1}[0-9]{1}|[3]{1}[0-1]{1})
\3是依據pattern中括號分組出現的位置來決定
參考出處:請點我
沒有留言:
張貼留言