Golang 如何使用Regex拆分文本
什么是正则表达式? 正则表达式是著名的动漫角色吗? 哎呀,如果你那么想,你可能会失望的。 Golang编程语言使用术语 regexp 来表示 正则表达式 。 正则表达式在字符串处理领域非常重要。 Go中的“ regexp ”包包含所有必要的预构函数,可以实现正则表达式搜索,并保证在所提供的输入大小上进行线性搜索。
如何使用正则表达式(或regex)拆分输入文本
Regexp包中包含Split函数,可帮助拆分输入文本字符串。在我们深入了解regexp split函数之前,让我们简要介绍一些基本的正则表达式,这些表达式在使用split函数时值得记住:
字符 | 意义 | 语法示例 | 正则表达式结果 |
---|---|---|---|
[ ] |
[ ] 用于包含或排除给定范围,甚至指定我们要包含或排除的字符。 [ ] 在范围内既包括左端点又包括右端点。 |
[b-f]an |
ban, can, dan, ean, fan |
{ } |
大括号用于匹配任何给定表达式的出现频率。 | gf{1,}g |
gfg, gffg, gfffg,... |
( ) |
( ) 用于包含或排除给定范围,甚至指定我们要包含或排除的字符。 ( ) 表示编号捕获组。 |
(b-f)an |
ban, can, dan, ean, fan |
* |
* 匹配前面的字符的 0/0+ 次出现。 |
gee*k |
gek, geek, geeek,... |
\+ |
\+ 匹配前面的字符的 1/1+ 次出现。 |
gee+k |
geek, geeek,... |
? |
? 匹配前一个字符的 0 或 1 次出现。 |
gee?k |
gek, geek |
. |
点号可以匹配除了换行符 (\n) 以外的任何字符。 | g.g |
gfg, gbg, gcg,... |
^ |
以 ^ 后面的串开始的文本。 也用作组或其他正则表达式的拒绝(NOT)操作符。 |
^ge [^0-8]* |
ge, geek, geeks,... ‘ ‘,9, 99,999,... |
$ |
对于单行文本,它表示字符串末尾;对于多行文本,它表示行末。 | $de |
code, decode,... |
| |
| 表示或操作。 |
geek|principle |
geek, geeks, principle, principles,… |
\ |
反斜杠是转义字符 如果您需要提及类似 \s 的任何内容,则需要使用 \\\s ,以便系统理解它是 \s 。 |
\A |
|
\s |
提取所有白空格。 | \\\s |
“, ” “, ” “,... |
\d |
提取所有数字。 | \\\d |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
语法:
此函数接受一个字符串和一个整数,返回所有子字符串的切片。输入字符串“ s ”将根据给定的正则表达式进一步拆分为子字符串,由Split函数返回。 “ n ”表示决定要返回的子字符串数量的值。
- 如果 n > 0:表示最多n个子字符串将经过正则表达式操作并将返回。
- 如果 n = 1 ,则不进行正则表达式操作,因此将返回原始字符串。
- 如果 n = 0 :表示不返回任何子字符串,应返回一个nill。
- 如果 n < 0:表示将返回创建的所有子字符串。
示例1:
执行命令:
输出:
Visual Studio Code上的视觉I / O演示:
在运行上述编写的代码的屏幕上的代码输出。
示例2:
执行命令:
输出:
在 Visual Studio Code 上的可视化演示:
运行上述代码后屏幕上的代码输出。