1. 什么是正则表达式
正则表达式(Regluar Expressions)又称规则表达式,这个概念最初是由Unix中的工具软件(如sed 和 grep)普及开的。正则表达式在代码中常简写为REs,regexes或regexp(regex patterns)。它本质上是一个小巧的、高度专用的编程语言。 许多程序设计语言都支持通过正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。
2. 正则表达式能做什么
正则表达式的主要应用对象是文本,使用正则表达式可以指定想要匹配的字符串规则,然后通过这个规则来匹配、查找、替换或切割那些符合指定规则的文本
3.正则当中名词解释
元字符:指那些在正则表达式中具有特殊意义的专用字符,如:点(.) 星(*) 问号(?)等
前导字符:位于元字符前面的字符. niu* zhu?
4.元字符
元字符 | 功 能 | 示 例 | 示例的匹配对象 |
^ | 行首定位符 | /^love/ | 匹配所有以 love 开头的行 |
$ | 行尾定位符 | /love$/ | 匹配所有以 love 结尾的行 |
. | 匹配除换行外的单 | /l..e/ | 匹配包含字符 l、后跟两个任意 |
* | 匹配零个或多个前 | /*love/ | 匹配在零个或多个空格紧跟着 |
[] | 匹配指定字符组内 | /[Ll]ove/ | 匹配包含 love 和 Love 的行 |
[^] | 匹配不在指定字符 | /[^A-KM-Z]ove/ | 匹配包含 ove,但 ove 之前的那 |
\(..\) | 保存已匹配的字符 | ||
& | 保存查找串以便在 | s/love/**&**/ | 符号&代表查找串。字符串 love |
\< | 词首定位符 | /\<love/ | 匹配包含以 love 开头的单词的 |
\> | 词尾定位符 | /love\>/ | 匹配包含以 love 结尾的单词的 |
x\{m\} | 连续 m 个 x | /o\{5\}/ | 匹配出现连续 5 个字母 o |
x\{m,\} | 至少 m 个 x | /o\{5,\}/ | 匹配至少 5 个连续的 o |
x\{m,n\} | 至少 m 个 x,但不 | /o\{5,10\}/ | 匹配5~10 个连续的 o 的行 |
5.扩展元字符
grep,必须加 -E 或者 egrep
sed,必须加 -r
扩展元字符 | 作用 | 举例 |
+ | 匹配一个或多个前导字符 | bo+ 匹配boo、 bo |
? | 匹配零个或一个前导字符 | bo? 匹配b、 bo |
| | 匹配 | 左边或者右边的字符 | a|b 匹配a或者b |
() | 组字符(看成整体) | (my|your)self : 表示匹配myself或匹配yourself |
{n} | 前导字符重复n次 | |
{n,} | 前导字符重复至少n次 | |
{n,m} | 前导字符重复n到m次 |
参考文献:
1.https://blog.csdn.net/Cantevenl/article/details/115328439
2.https://blog.csdn.net/m0_67156403/article/details/124530847