Golang中的正则表达式
用法:
单一:
复合:
重复:
分组:
位置标记:
转义序列:
可以将“命名字符类”作为“字符类”的元素:
说明:
“字符类”取值如下(“字符类”包含“Perl类”、“ASCII类”、“Unicode类”):
x 单个字符
A-Z 字符范围(包含首尾字符)
\小写字母 Perl类
[:ASCII类名:] ASCII类
\p{Unicode脚本类名} Unicode类 (脚本类)
\pUnicode普通类名 Unicode类 (普通类)
“Perl 类”取值如下:
“ASCII 类”取值如下
“Unicode 类”取值如下—普通类:
“Unicode 类”取值如下—脚本类:
注意:
对于 [a-z] 这样的正则表达式,如果要在 [] 中匹配 - ,可以将 - 放在 [] 的开头或结尾,例如 [-a-z] 或 [a-z-]
可以在 [] 中使用转义字符:\f、\t、\n、\r、\v、\377、\xFF、\x{10FFFF}、\、^、$、.、*、+、?、{、}、(、)、[、]、|(具体含义见上面的说明)
如果在正则表达式中使用了分组,则在执行正则替换的时候,“替换内容”中可以使用
1、{1}、
name、{name} 这样的“分组引用符”获取相应的分组内容。其中 $0 代表整个匹配项,$1 代表第 1 个分组,$2 代表第 2 个分组,……。
如果“分组引用符”是 $name 的形式,则在解析的时候,name 是取尽可能长的字符串,比如:$1x 相当于
1x,而不是{1}x,再比如:$10 相当于 ${10},而不是 ${1}0。
由于 $ 字符会被转义,所以要在“替换内容”中使用 $ 字符,可以用 $ 代替。
上面介绍的正则表达式语法是“Perl 语法”,除了“Perl 语法”外,Go 语言中还有另一种“POSIX 语法”,“POSIX 语法”除了不能使用“Perl 类”之外,其它都一样。
// 示例
func main() {
text :=
}
完##