我理解重复的概念0次或更多次(*)并将'()'分组在那里,但是我在理解实践示例时遇到了麻烦。
例如,(是)*包含空集和单词“是”,但不包含y或ss。我认为它因为分组而不包含这些单词,但是这意味着“yesyes”这个词在重复组时也是有效的吗?
相反,我假设正则表达式'是*',任何字符都可以重复。例如'y','ye''es''是','yy'。但是,我们提供的解决方案表明不包含“y”这个词。我很困惑。
答案 0 :(得分:1)
您对(是)*的理解是正确的...... (是)*匹配字符串“是”(确切地说 - 不短,不再)0次或更多次 - 即空字符串或是,yesyes,yesyesyesyesyesyes等
但你对是*的理解不正确...... 是*匹配字符串“ye”后跟0或更多“s”字符 - 即ye,yes,yess,yessssssss
答案 1 :(得分:1)
“零或多个”*
修饰符仅适用于紧邻其前面的字符或组。
在第一个示例中,我们有一个组(yes)*
- 这将匹配''
,'yes'
,'yesyes'
等。
在第二个示例yes*
中,修饰符仅适用于字母s
。它将匹配'ye'
,'yes'
,'yess'
等
如果不清楚,那么也许你可以详细说明一下你的困惑的来源。