*和+是正则表达式中的两个重要元字符。 *匹配前面的元素零次或多次。例如,表达式a*b将匹配零个或多个a,后面紧跟着一个b。 +匹配前面的元素一次或多次。例如,表达式a+b将匹配一个或多个a,后面紧跟着一个b。 这两个元字符的区别在于,*可以匹配零次出现的元素,而+至少要求有一次出现的元素。 使用这两个元字符可以更灵活地匹配字符串中的模式。
在正则表达式中,*和+都是量词。星号量词(*)表示前面的表达式可以匹配零次或多次,相当于{0,};加号量词(+)表示前面的表达式必须匹配至少一次或多次,相当于{1,}。
总结一下:
a* ---> a{0,} ---> 匹配a或aa或aaaaa或空字符串
a+ ---> a{1,} ---> 匹配a或aa或aaaa但不匹配空字符串
这个问题的解答已经添加到了Stack Overflow正则表达式FAQ中的“Quantifiers”部分。
我没有看到任何与空字符串匹配的结果。
结果是相同的。