第8课:可选字符

正如你在上一课中看到的,Kleene 星号(*)和加号(+)允许我们匹配一行中重复出现的字符。

另一个在文本匹配和提取中非常常用的数量修饰符是问号(?)这个元字符,它表示可选性。这个元字符允许你匹配前一个字符或分组出现 0 次或 1 次。例如,正则表达式 ab?c 可以匹配 "abc" 或 "ac",因为其中的 b 被视为可选项。

和点号(.)一样,问号(?)也是一个特殊字符。如果你想匹配字符串中真正的问号符号,必须使用反斜杠进行转义:\?。

在下面的字符串中,请注意单词 "file" 的复数形式取决于找到的文件数量。试着编写一个使用可选性元字符的正则表达式,只匹配那些找到一个或多个文件的行。

练习 8: 匹配可选字符
Task Text  
匹配 1 file found? To be completed
匹配 2 files found? To be completed
匹配 24 files found? To be completed
跳过 No files found. To be completed
提示

我们可以使用元字符 \d 来匹配文件数量,并使用正则表达式 \d+ files? found\? 来匹配所有找到了文件的行。请注意,第一个问号作用于前面的 's' 字符(用于表示复数形式);而末尾真正的问号符号则必须使用反斜杠进行转义,才能匹配文本中的问号本身。

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