扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:佚名 来源:Aspsky 2007年10月26日
关键字: Linux
在很多的情况下,我们可能要匹配一个单词或一组数字。一个单词有若干个字母组成,一组数字有若干个单一的数字组成。我们用跟在字符或字符簇后面的花括?quot;{}"来确定前面的内容的重复出现的次数:假设x是一个数字,那么{x}表示"前面的字符或字符簇只出现x次";一个数字加逗号,{x,}的意思是"前面的内容出现x或更多的次数";两个用逗号分隔的数字,{x,y}表示"前面的内容至少出现x次,但不超过y次"。
字符簇 |
含义 |
"^[a-zA-Z_]$" | 所有的字母和下划线 |
"^[[:alpha:]]{3}$" | 所有的3个字母的单词 |
"^a$" | 字母a |
"^a{4}$" | 不是以字母a开头并且有4个字母的单词,比如Aaaa |
^a{2,4}$" | aa,aaa或aaaa |
"^a{1,3}$" | a,aa或aaa |
"^a{2,}$" | 包含多于两个a的字符串,比如aaa,aaaa,aaaaa |
"^a{2,}" | 以两个a开头的单词,如:aardvark和aaab,但apple不行 |
"a{2,}" | 包含有两个a的单词,如:baad和aaa,但Nantucket不行 |
"\t{2}" | 两个制表符 |
".{2}" | 所有的两个字符 |
我们可以把模式扩展到更多的单词或数字:
"^[a-zA-Z0-9_]{1,}$" | 所有包含一个以上的字母、数字或下划线的字符串 |
"^[0-9]{1,}$" | 所有的正数 |
"^\-{0,1}[0-9]{1,}$" | 所有的整数 |
"^\-{0,1}[0-9]{0,}\.{0,1}[0-9]{0,}$" | 所有的整数 |
最后一个例子我们可以这样考虑:所有以一个可选的负号(\-{0,1})开头(^)、跟着0个或更多的数字([0-9]{0,})、和一个可选的小数点(\.{0,1})再跟上0个或多个数字([0-9]{0,}),并且没有其他任何东西($)。
特殊字符"?"与"{0,1}"是相等的,它们都代表着:"0个或1个前面的内容"或"前面的内容是可选的"。所以:
"^\-{0,1}[0-9]{0,}\.{0,1}[0-9]{0,}$"
可以简化为:
^\-?[0-9]{0,}\.?[0-9]{0,}$
特殊字符"*"与"{0,}"是相等的,它们都代表着"0个或多个前面的内容"。字符"+"与{1,}是相等的,表示"1个或多个前面的内容",所以上面的4个例子可以写成:
"^[a-zA-Z0-9_]+$" | 所有包含一个以上的字母、数字或下划线的字符串 |
"^[0-9]+$" | 所有的正数 |
"^\-?[0-9]+$" | 所有的整数 |
"^\-?[0-9]*\.?[0-9]*$" | 所有的小数 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者