开头的(?)是表达式选项
(?i) ignoreCase :忽略大小写
(?s) singleLine :以单行模式去区别,此时.可匹配任意字符
(?m) multiLine :以多行模式去匹配^和$可以对每一行去进行验证,此时.匹配除了换行符以外的字符。
共同使用时就是(?is) ,即不区分大小写,以单行模式去匹配字符串
注:单行与多行并没有直接关系,互不影响,可以共同使用
正则表达式里用()进行分组,并且可以指定组名,形如 (?<组名>正则表达式)或者(?'组名'正则表达式)
所以你上面的(?<href>[^\.]*)也可以写成(?'href'[^\.]*)
(?<href>[^\.]*) 要这么看 ?<href> 是一个整体。 即 ([^\.]*) 的匹配内容,<>里的内容是为匹配组命名。你也可以这么修改: ?<href> 也可以写为 ?'href' 取值的时候可以用 group["href"] 获得。