1. 程式人生 > 其它 >正則表示式中?:的作用

正則表示式中?:的作用

正則表示式中?:的作用

在正則表示式中使用括號()會在匹配時建立相應的group, 例如日期匹配regex:

/^(\d{4})[-/](\d{2})[-/](\d{2})$/

括號包裹的三個部分會生成3個group,如下圖
generated by https://regexper.com
可以用$1, $2和 $3獲取各group,如:

String str = "2021/04/24";
String regex = "^(\d{4})[-/](\d{2})[-/](\d{2})$";
str.replaceAll(regex,"$1年$2月$3日");

替換後str結果為2021年04月24日

此時若用(?:)

替換括號,該部分變為non-capturing group,不生成可獲取的group

String str = "2021/04/24";
String regex = "^(?:\d{4})[-/](\d{2})[-/](\d{2})$";
str.replaceAll(regex,"$1月$2日");

str結果為04月24日