shell常用正则表达式
^ 行首 扩展正则 sed加-r参数或转义 [:alnum:] Alphanumeric characters. 匹配范围为 [a-zA-Z0-9] [:alpha:] Alphabetic characters.匹配范围为 [a-zA-Z] [:blank:] Space or tab characters.匹配范围为空格和TAB键 [:cntrl:] Control characters.匹配控制键 例如 ^M 要按 ctrl+v 再按回车 才能输出 [:digit:] Numeric characters.匹配所有数字 [0-9] [:graph:] Characters that are both printable and visible. (A space is print-able,but not visible,while an a is both.) 匹配所有可见字符 但不包含空格和TAB 就是你在文本文档中按键盘上能用眼睛观察到的所有符号[:lower:] Lower-case alphabetic characters. 小写 [a-z] [:print:] Printable characters (characters that are not control characters.)匹配所有可见字符 包括空格和TAB,能打印到纸上的所有符号 [:punct:] Punctuation characters (characters that are not letter,digits,con- trol characters,or space characters). 特殊输入符号 +-=)(*&^%$#@!~`|"'{}[]:;?/>.<, 注意它不包含空格和TAB 这个集合不等于^[a-zA-Z0-9] [:space:] Space characters (such as space,tab,and formfeed,to name a few).[:upper:] Upper-case alphabetic characters. 大写 [A-Z] [:xdigit:] Characters that are hexadecimal digits.16进制数 [0-f] 使用方法: ^d+$ 非负整数(正整数 + 0) 匹配中文字符的正则表达式: [u4e00-u9fa5] 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’n’ 或 ’r’ 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’n’ 或 ’r’ 之前的位置。 * 匹配前面的子表达式零次或多次。 + 匹配前面的子表达式一次或多次。+ 等价于 {1,}。 ? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。 {n} n 是一个非负整数,匹配确定的n 次。 {n,} n 是一个非负整数,至少匹配n 次。 ? 当该字符紧跟在任何一个其他限制符 (*,+,?,{n},{n,},m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。 . 匹配除 “n” 之外的任何单个字符。要匹配包括 ’n’ 在内的任何字符,请使用象 ’[.n]’ 的模式。 (?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。 (?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。 (?!pattern) 负向预查,与(?=pattern)作用相反 x|y 匹配x或y [xyz] 字符集合 [^xyz] 负值字符集合 [a-z] 字符范围,匹配指定范围内的任意字符。 [^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。 b 匹配一个单词边界,也就是指单词和空格间的位置。 B 匹配非单词边界。 cx 匹配由x指明的控制字符。 d 匹配一个数字字符。等价于 [0-9]。 D 匹配一个非数字字符。等价于 [^0-9]。 f 匹配一个换页符。等价于 x0c 和 cL。 n 匹配一个换行符。等价于 x0a 和 cJ。 r 匹配一个回车符。等价于 x0d 和 cM。 s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ fnrtv]。 S 匹配任何非空白字符。等价于 [^ fnrtv]。 t 匹配一个制表符。等价于 x09 和 cI。 v 匹配一个垂直制表符。等价于 x0b 和 cK。 w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。 W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。 xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。 num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。 n 标识一个八进制转义值或一个后向引用。如果n之前至少n个获取的子表达式,则n为后向引用。否则,如果 n 为八进制数字(0-7),则n为一个八进制转义值。 nm 标识一个八进制转义值或一个后向引用。如果nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 nm 之前至少有n个获取,则n为一个后跟文字m的后向引用。如果前面的条件都不满足,若n和m均为八进制数字 (0-7),则nm 将匹配八进制转义值nm。 nml 如果n 为八进制数字(0-3),且m和l均为八进制数字 (0-7),则匹配八进制转义值nml。 un 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。 匹配中文字符的正则表达式: [u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空行的正则表达式:n[s| ]*r 匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*) />/ 匹配首尾空格的正则表达式:(^s*)|(s*$) 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)? =========常用正则表达式 匹配中文字符的正则表达式: [u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空行的正则表达式:n[s| ]*r 匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*) />/ 匹配首尾空格的正则表达式:(^s*)|(s*$) 匹配IP地址的正则表达式:/(d+).(d+).(d+).(d+)/g // 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址URL的正则表达式:http://(/[w-]+.)+[w-]+(/[w- ./?%&=]*)? sql语句:^(select|drop|delete|create|update|insert).*$ 1、非负整数: ^d+$ 2、正整数: ^[0-9]*[1-9][0-9]*$ 3、非正整数: ^((-d+)|(0+))$ 4、负整数: ^-[0-9]*[1-9][0-9]*$ 5、整数: ^-?d+$ 6、非负浮点数:^d+(.d+)?$ 7、正浮点数:^((0-9)+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)| ([0-9]*[1-9][0-9]*))$ 8、非正浮点数:^((-d+.d+)?)|(0+(.0+)?))$ 9、负浮点数:^(-((正浮点数正则式)))$ 10、英文字符串:^[A-Za-z]+$ 11、英文大写串:^[A-Z]+$ 12、英文小写串:^[a-z]+$ 13、英文字符数字串:^[A-Za-z0-9]+$ 14、英数字加下划线串:^w+$ 15、E-mail地址:^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$ 16、URL:^[a-zA-Z]+://(w+(-w+)*)(.(w+(-w+)*))*(?s*)?$ 17、邮政编码:^[1-9]d{5}$ 18、中文:^[u0391-uFFE5]+$ 19、电话号码:^(((d{2,3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9] d{6,7}(-d{1,4})?$ 20、手机号码:^(((d{2,3}))|(d{3}-))?13d{9}$ 21、双字节字符(包括汉字在内):^x00-xff 22、匹配首尾空格:(^s*)|(s*$)(像vbscript那样的trim函数) 23、匹配HTML标记:<(.*)>.*</1>|<(.*) /> 24、匹配空行:n[s| ]*r 25、提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *(’|”)?(w||/|.)+(’|”| *|>)? 26、提取信息中的邮件地址:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 27、提取信息中的图片链接:(s|S)(r|R)(c|C) *= *(’|”)?(w||/|.)+(’|”| *|>)? 28、提取信息中的IP地址:(d+).(d+).(d+).(d+) 29、提取信息中的中国手机号码:(86)*0*13d{9} 30、提取信息中的中国固定电话号码:((d{3,4})|d{3,4}-|s)?d{8} 31、提取信息中的中国电话号码(包括移动和固定电话):((d{3,4}-|s)?d{7,14} 32、提取信息中的中国邮政编码:[1-9]{1}(d+){5} 33、提取信息中的浮点数(即小数):(-?d*).?d+ 34、提取信息中的任何数字 :(-?d*)(.d+)? 35、IP:(d+).(d+).(d+).(d+) 36、电话区号:/^0d{2,3}$/ 37、腾讯QQ号:^[1-9]*[1-9][0-9]*$ 38、帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 39、中文、英文、数字及下划线:^[u4e00-u9fa5_a-zA-Z0-9]+$ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |