正则表达式学习笔记2
3.匹配数量
字符一:*
匹配零个或一个以上的字符
例如文本:ab abc abcc abccc
输入:abc*
结果:ab abc abcc abccc
字符二:+
匹配一个或一个以上的字符
例如文本:ab abc abcc abccc
输入:abc+
结果:abc abcc abccc
字符三:?
匹配零个或一个的字符
例如文本:ab abc abcc abccc
输入:abc?
结果:ab abc
字符四:{ }
限制匹配字符范围(数字可自拟)
{0,}等价*
{1,}等价+
{0,1}等价?
例如文本:ab abc abcc abccc
输入:abc{0,}
结果:ab abc abcc abccc
(其他同理)
字符五:?
加在上述字符后从贪婪模式(匹配最多字符)转化为懒惰模式(匹配最少字符)
例如加?
文本:abbbbbabbbbba
输入:ab.*?a
结果:abbbbba
例如不加?
文本:abbbbbabbbbba
输入:ab.*a
结果:abbbbbabbbbba
4.匹配边界
字符一:\b
单词边界
例如文本:(content) contentabc
输入:\bcontent\b
结果:content
(\b加在左边匹配左边界,右边同理)
字符二:^
匹配左边界(文本开头)
例如文本:abccontest contest
输入:^contest
结果:无结果
例如文本:abccontest contest
输入:^abccontest
结果:abccontest
字符三:$
匹配有边界(文编结尾)
例如文本:contest contestcba
输入:contest$
结果:无结果
例如文本:contest contestcba
输入:contestcba$
结果:contestcba
(可以用来检测开头或结尾的空行或特定字符)
字符三:(?m)
分行匹配(部分语言不支持)
例如不加(?m)
文本:
abc
abcc
abccc
输入:^ab*
结果:abc
例如加(?m)
文本:
abc
abcc
abccc
输入:(?m)^ab*
结果:abc abcc abccc
学习教程来源:BV1xW4y1X7Es