第7课:Kleene星号和加号

正则表达式中的一个强大概念是:可以匹配任意数量的字符。比如,假设你创建了一个表单,其中有一个用于捐款的字段,需要输入以美元计的数值。一位富有的用户可能会捐赠 $25,000,而一位普通用户可能只捐赠 $25。

表达这种模式的一种方式是使用被称为 Kleene 星号(*)Kleene 加号(+) 的符号。它们分别表示:前面的字符出现 0 次或更多次,或 出现1 次或更多次(这两个符号总是跟在某个字符或分组后面)。例如,为了匹配上述捐款金额,我们可以使用模式 \d* 来匹配任意数量的数字,但更严格的正则是 \d+,它确保输入中至少有一个数字。

这些数量修饰符(量词)可以用于任意字符或元字符,例如:

  • a+:匹配一个或多个 a
  • [abc]+:匹配一个或多个 a、b 或 c 中的任意字符
  • .*:匹配零个或多个任意字符

下面是一些简单的字符串,你可以用 * 和 + 这两个元字符来匹配它们。

练习 7: 匹配重复字符
Task Text  
匹配 aaaabcc To be completed
匹配 aabbbbc To be completed
匹配 aacc To be completed
跳过 a To be completed
提示

每一行中都至少包含两个 'a',零个或多个 'b',以及至少一个 'c',因此你可以使用正则表达式 aa+b*c+ 来精确表示这种模式。另一种更严格的写法是:a{2,4}b{0,4}c{1,2},它对每个字符的数量都设置了上限和下限。

解决上面的问题以继续到, 或者可以参考答案