Skip to content

正则表达式中字符出现的次数设置 #14

Open
@JCHappytime

Description

@JCHappytime

1. ^和$

两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:

表达式 代表的意思
^The 表示所有以"The"开始的字符串("There","The cat"等)
of despair$ 表示所以以"of despair"结尾的字符串;
^abc$ 表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了;
notice 表示任何包含"notice"的字符串。

2. '*','+'和'?'

它们表示一个或一序列字符重复出现的次数,分别表示没有或更多一次或更多没有或一次

表达式 代表的意思
ab* 表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……);
ab+ 表示一个字符串有一个a后面跟着至少一个b或者更多;
ab? 表示一个字符串有一个a后面跟着零个或者一个b;
a?b+$ 表示在字符串的末尾有零个或一个a跟着一个或几个b。

我们也可以使用范围,用大括号括起,用以表示重复次数的范围。如:

表达式 代表的意思
ab{2} 表示一个字符串有一个a跟着2个b("abb");
ab{2,} 表示一个字符串有一个a跟着至少2个b;
ab{3,5} 表示一个字符串有一个a跟着3到5个b。

请注意:在写这种表达式的时候,你必须指定范围下限,如{0,2}而不是{,2}。还有,你可能注意到了,'*','+'和'?'相当于"{0,}","{1,}"和"{0,1}"

3. |(或操作符)

表达式 代表的意思
hi|hello 表示一个字符串里有hi或者hello
(b|cd)ef 表示bef或者cdef
(a|b)*c 表示一串ab混合的字符串后面跟一个c

4. 点号(.)可以代替任何字符

表达式 代表的意思
a.[0-9] 表示一个字符串有一个a后面跟着一个任意字符和一个数字
^.{3} 表示有任意三个字符的字符串(长度为3个字符)

5. 方括号表示某些字符允许在一个字符串中的某一特定位置出现

表达式 代表的意思
[ab] 表示一个字符串有一个a或b,相当于a|b
[a-d] 表示一个字符串包含小写的a到d中的一个,相当于a|b|c|d或者[abcd]
^[a-zA-Z] 表示一个以字母开头的字符串
[0-9]% 表示一个百分号前有一位的数字
,[a-zA-Z0-9]$ 表示一个字符串以一个逗号后面跟着一个字母或数字结束

也可以在方括号中使用^表示不希望出现的字符,^应在方括号里的第一位。如:%[^a-zA-Z]%表示2个百分号中间不应该出现字母。在方括号中不需要转义字符。

6. 其他量词:重复出现

符号 次数下限 次数上限 含义
+ 1 可以出现无数次,但至少必须出现一次(至少一次)
* 可以出现无数次,也可以不出现(任意次数均可)
? 1 可以不出现,也可以只出现一次(单词可选)

注意:*+?作用的对象是它们之前紧邻的子表达式。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions