Powershell--正则表达式--字符--含义
2022年7月5日
10:43
某些特定字符在正则表达式有特殊含义,这些特定字符可以允许检测文本变量中的文本模式;
示例:
\w 用于匹配“文本字符”也就是字母、数字、以及下划线,但不包含标点符号和空格。
例: 正则表达式 \won ,可以匹配“Don”、“Ron”、以及“ton”,
这里 “\w”可以代表任意字母、数字或下划线;
W与\w, 相反(这也是power shell会区分大小写的一个示例),
他将会配配空格与标点符号----也就是“非字母”;
\d 用于匹配包括0到9的任意数字;
\D 用于匹配任意非数字;
\s 用于匹配任意空格字符,比如Tab、空格、或者回车符;
\S 用于匹配任意非空格字符;
.(句号) 代表任意单个字符 ;
[abcde] 用于匹配在该集合中的任意一字符。
例:正则表达式 d[aeiou]n,
可以匹配“Don”、“Dan” 、“den”、“din”、“don”、“dun”,
不会匹配 “doun”、“deen”“daen”“dein”、等等;
[^abcde] 用于匹配不在该集合中的一个或多个字符,
正则表达式
例:d[^aeiou] 可以与匹配“dns”匹配,但无法与“don”匹配
[a-z] 用于匹配此范围内的一个或多个字符,可以使用“,”逗号分隔列表指定多个范围
例:[a-f,m-z]
? 问号, 将“?”置于另一个字符或特殊字符之后,可以匹配在字符的一个实例。
正则表达式
例:do?n 可以与“don”匹配,但不会与“doon”匹配;
还可以与“dn”匹配,
这是由于?还可以代表空实例;
“*” 星号,用于匹配该符号之前任意数量的实例。
正则表达式
例:do*n 将会与“doon”、“don”匹配,还可以与“dn”匹配。
这是由于“*”可以代表空实例;
+ 加号,用于匹配该符号之前任意数量的实例。
常可见到“*”星号和“()括号”一起使用,从而创建了一种子表达式。
正则表达式
例:(dn)+o 可以与“dndndndno”匹配。
这是由于该正则表达式可以重复匹配子表达式的“dn”;
\ 反斜杠,是正则表达式的转义字符。将该字符置于正则表达式中有特殊意义的字符之前,
从而使该字符变为该字符的字面意思。
正则表达式
例:\. (反斜杠跟句号) ,仅匹配一个句号,而不是像正常情况那样用于代表任意单个字符。
如果希望匹配反斜杠,那么在反斜杠之前再加一个反斜杠:"\\."
{2} 用于匹配该符号之前特定数量的实例。
正则表达式
例:\d{1} 用于匹配1个数字
{2,} 用于匹配2或多个数字,
{1,3} 用于匹配至少1个但不超过3个实例。;
^ 用于匹配字符串开始部分。
正则表达式
例(对比): d.n 比如既可以匹配“don”,又可以匹配“pteranodon”,
^d.n 只能匹配“don”,而无法匹配“pteranodon”,
由于"^" 是的匹配只能从字符串开始部分匹配,
而“^”与"[]" 共同使用时表达取匹配的反义。;
$ 美元符, 用于匹配字符串结尾部分。
正则表达式
例: .icks 既可以与“hicks”匹配,
也可以与“sticks”匹配(本例中该匹配其实匹配的是“ticks”),
还能够和“disckson”匹配。
但是.icks$ 无法与“dichson”匹配,
这是因为$表示字符“s”应该是该字符串的最后一个字符。;