锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

shell 正则表达式详细整理

时间:2023-11-17 04:07:02 开关三极管3ck15a

正则表达式分类

1.基本正则表达式(Basic Regular Expression 又叫Basic RegEx 简称BREs)

2.扩展的正则表达式(Extended Regular Expression 又叫Extended RegEx 简称EREs)

3、Perl正则表达式(Perl Regular Expression 又叫Perl RegEx 简称PREs)

详见本文:///www.jb51.net/tools/shell_regex.html

shell常用的正则表达式

“^\d $” //非负整数(正整数) 0)

“^[0-9]*[1-9][0-9]*$” //正整数

“^((-\d )|(0 ))$” //非正整数(负整数) 0)

“^-[0-9]*[1-9][0-9]*$” //负整数

“^-?\d $” //整数

“^\d (\.\d )?$” //非负浮点(正浮点) 0)

“^(([0-9] \.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9] )|([0-9]*[1-9][0-9]*))$” ///正浮点数

“^((-\d (\.\d )?)|(0 (\.0 )?))$” //非正浮点(负浮点) 0)

“^(-(([0-9] \.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9] )|([0-9]*[1-9][0-9]*)))$” ///负浮点数

“^(-?\d )(\.\d )?$” //浮点数

“^[A-Za-z] $” //由26个英文字母组成的字符串

“^[A-Z] $” //由26个英文字母的大写组成的字符串

“^[a-z] $” //由26个英文字母的小写组成的字符串

“^[A-Za-z0-9] $” //由数字和26个英文字母组成的字符串

“^\w $” ///由数字、26个英文字母或下划线组成的字符串

“^[\w-] (\.[\w-] )*@[\w-] (\.[\w-] ) $” //email地址

“^[a-zA-z] ://(\w (-\w )*)(\.(\w (-\w )*))*(\?\S*)?$” //url

/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|)-([0-2]([1-9]{1})|(3[0|1]))$/ // 年-月-日

/^(0([1-9]{1})|(1[1|)/([0-2]([1-9]{1})|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年

“^([w-.] )@([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-] .) ))([a-zA-Z]{2,4}|()$” //Emil

/^((\ ?[0-9]{2,4}\-[0-9]{3,4}\-)|(0-9){3,4}\-))?([0-9]{7,8}(\-[0-9] )?$/ //电话号码

“^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$” //IP地址

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字):[^\x00-\xff]

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/.*|/

正则表达式匹配首尾空间:(^\s*)|(\s*$)

匹配Email正则表达式地址:\w ([- .]\w )*@\w ([-.]\w )*\.\w ([-.]\w )*

匹配网址URL正则表达式:^[a-zA-z] ://(\\w (-\\w )*)(\\.(\\w (-\\w )*))*(\\?\\S*)?$

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?

匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

正则表达式上下文中的元字符及其行为:

\ 将下一个字符标记为特殊字符、原义字符、后引用或八进制转义符。

^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。

$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 '\n' 或 '\r' 以前的位置。

* 匹配前面的子表达式零或多次。

一次或多次匹配前面的子表达式。 等价于 {1,}。

? 匹配前面的子表达式零或一次。 等价于 {0,1}。

{n} n 是匹配确定的非负整数n 次。

{n,} n 至少匹配一个非负整数n 次。

{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 最多匹配 m 二。逗号和两个数之间不能有空间。

? 当字符跟随任何其他限制时 (*, , ?, {n}, {n,}, {n,m}) 后来,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配搜索的字符串,而默认的贪婪模式尽可能多地匹配搜索的字符串。

. 匹配除 “\n” 其他任何单个字符。匹配包括 '\n' 任何字符,请使用象 '[.\n]' 的模式。

(pattern) 匹配pattern 并获得此匹配。

(?: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 匹配任何空白字符,包括空格、制表、换页等。[ \f\n\r\t\v]。

\S 匹配任何非空白字符。 [^ \f\n\r\t\v]。

\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 )[emailprotected] ([-.]w )*.w ([-.]w )*

匹配网址URL正则表达式:http://([w-] .) [w-] (/[w- ./?%&=]*)?

网页表单中的文本框输入内容采用正则表达式限制:

只能用正则表达式限制输入中文:οnkeyup=”value=value.replac(/[^u4E00-u9FA5]/g,”)” onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,”))”

用正则表达式限制只能输入全角字符: οnkeyup=”value=value.replace(/[^uFF00-uFFFF]/g,”)” onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,”))”

用正则表达式限制只能输入数字:οnkeyup=”value=value.replace(/[^d]/g,”) “onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,”))”

用正则表达式限制只能输入数字和英文:οnkeyup=”value=value.replace(/[W]/g,”) “onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,”))”

常用正则表达式

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/.*|/

匹配首尾空格的正则表达式:(^\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*)?$

或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^& lt;>\"\"])*$

17、邮政编码:^[1-9]\d{5}$

18、中文:^[\u0391-\uFFE5]+$

19、电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9] \d{6,7}(\-\d{1,4})?$

20、手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$

21、双字节字符(包括汉字在内):^\x00-\xff

22、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数)

23、匹配HTML标记:.*|

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*13\d{9}

30、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}

31、提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\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、电话区号:/^0\d{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]+$

感谢阅读此文,希望能帮助到大家,谢谢大家对本站的支持!

这就是微学网-程序员之家为你提供的"shell 正则表达式详细整理"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/12254.html

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章