bash Shell 总结《四》 正则表达式

前端之家收集整理的这篇文章主要介绍了bash Shell 总结《四》 正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式@H_403_1@


@H_403_1@

单个字符表示法@H_403_1@


@H_403_1@

字符本身 <-- 除了下面的特殊字符之外,字符可以表示其本身@H_403_1@

. <-- Any character@H_403_1@

\d <-- Digit in 0123456789@H_403_1@

\D <-- Non-digit@H_403_1@

\w <-- Word: letters,digits,underscore (_)@H_403_1@

\W <-- Non-word@H_403_1@

\t <-- Tab@H_403_1@

\r <-- Carriage return@H_403_1@

\n <-- New line@H_403_1@

\s <-- Whitespace: space,\t,\r,\n@H_403_1@

\S <-- Non-whitespace@H_403_1@

[abc] <-- a,or b,or c@H_403_1@

[a-c] <-- a,or c@H_403_1@

[0-2] <-- 0,or 1,or 2@H_403_1@

[1-3a-cX-Z] <-- 1,2,3,a,b,c,X,Y,Z@H_403_1@

[^abc] <-- Any character except a and b and c@H_403_1@

[:upper:] <-- Upper case letters,[A-Z]@H_403_1@

[:lower:] <-- Lower case letters,[a-z]@H_403_1@

[:alpha:] <-- Alphabetic characters,[a-zA-Z]@H_403_1@

[:alnum:] <-- Alphanumeric characters,[a-zA-Z0-9]@H_403_1@

[:digit:] <-- Digits,[0-9]@H_403_1@

[:xdigit:] <-- Hexadecimal digits,[a-fA-F0-9]@H_403_1@

[:punct:] <-- Punctuation and symbols,[][!"#$%&'()*+,./:;<=>?@\^_`{|}~-]@H_403_1@

[:blank:] <-- Space and tab,[ \t]@H_403_1@

[:space:] <-- All whitespace characters including line breaks,[ \t\r\n\v\f]@H_403_1@

[:cntrl:] <-- Control characters,[\x00-\x1F\x7F]@H_403_1@

[:graph:] <-- Visible characters (i.e. anything except spaces,control characters,etc.),[\x21-\x7E]@H_403_1@

[:print:] <-- Visible characters and spaces (i.e. anything except control characters,[\x20-\x7E]@H_403_1@

[:word:] <-- Word characters (letters,numbers and underscores),[a-zA-Z0-9_]@H_403_1@

[:ascii:] <-- ASCII characters,[\x00-\x7F]@H_403_1@


@H_403_1@


@H_403_1@


@H_403_1@

特殊字符表示法@H_403_1@


@H_403_1@

^$.*+?|\{}[]() 都有特殊意义的,如果需要表示这些符号,则可以用反斜杠对它们进行转义,比如:@H_403_1@

\. 匹配一个点@H_403_1@

\\ 匹配一个反斜杠@H_403_1@

\^@H_403_1@

\$@H_403_1@


@H_403_1@

出现在[...]中的连字符也有特殊意义,如果需要在[...]中表示一个连字符,就要把它放到[...] 的头部或者尾部,比如:@H_403_1@

[abc-] 或者 [-abc]@H_403_1@


@H_403_1@


@H_403_1@


@H_403_1@

数量表示法@H_403_1@


@H_403_1@

用来表示前面的一个字符,或者一组字符重复的次数@H_403_1@

* <-- 任意次,{0,},c >= 0@H_403_1@

+ <-- 至少1次,{1,c >= 1@H_403_1@

? <-- 0次或者1次,1},c == 0 || c == 1@H_403_1@

{m} <-- m 次,c == m@H_403_1@

{m,} <-- 至少m 次,c >= m@H_403_1@

{m,n} <-- m 次至n 次,c >= m && c <= n@H_403_1@


@H_403_1@

数量表示符作用于前面的一个字符,或者一组字符,用小括号括起来的就是一组字符。@H_403_1@

ab+ 匹配ab,abb,abbb,abbbb...@H_403_1@

(ab)+ 匹配ab,abab,ababab,abababab...@H_403_1@


@H_403_1@

默认情况下,数量表示符是最大匹配,某些正则表达式引擎支持用问号 ? 来启用最小匹配@H_403_1@

.*b 匹配 aaabababa <-- 最大匹配@H_403_1@

^^^^^^^^@H_403_1@

.*?b 匹配 aaabababa <-- 最小匹配@H_403_1@

^^^^@H_403_1@


@H_403_1@


@H_403_1@


@H_403_1@

分组表示法@H_403_1@


@H_403_1@

(abc) <-- 一组连续的字符abc@H_403_1@

(aa|bb) <-- 一组连续的字符ab 或者 bb@H_403_1@


@H_403_1@


@H_403_1@


@H_403_1@

边界表示法@H_403_1@


@H_403_1@

^ <-- 字符串的开头@H_403_1@

$ <-- 字符串的结尾@H_403_1@

\b <-- 单词边界@H_403_1@

\B <-- 非单词边界@H_403_1@

\< <-- 单词左边界@H_403_1@

\> <-- 单词右边界@H_403_1@


@H_403_1@


@H_403_1@


@H_403_1@

引用表示法@H_403_1@


@H_403_1@

从左边开始数左小括号(openning brace),数字从1开始,被第一对括号匹配的字符可以用\1 来引用,第二对可以用\2 来引用,以此类推。@H_403_1@

[czl@mob shell_03]$ echo abcabcabcaabb | grep -E '(a(bc)){2}\1' --color@H_403_1@

abcabcabcaabb@H_403_1@

[czl@mob shell_03]$ echo abcabcabcaabb | grep -E '(a(bc)){2}a\2' --color@H_403_1@

abcabcabcaabb@H_403_1@

[czl@mob ~]$ echo "hello world,hello world,hello beautiful world" | grep -E --color '((hello) (world)),\1,\2 .* \3'@H_403_1@

hello world,hello beautiful world@H_403_1@ 原文链接:https://www.f2er.com/bash/388258.html

猜你在找的Bash相关文章