我正在学习正则表达式。如果*表示0或更多匹配,+表示1或更多匹配,那么这些正则表达式短语不应该与字符串不匹配吗?
答案 0 :(得分:4)
[^un]
表示匹配u
或n
以外的任何字符。所以[^un]*succesful
匹配,因为它重复了0次。 [^un]+successful
会失败,因为在成功之前会有一个n
字符。
答案 1 :(得分:2)
因为[^un]
表示“不是你或否”,而*
表示0或更多(正如您所知......)
在这种情况下,有0次出现“not u或n”后跟“success”,所以匹配。 +
(1或更多)不会导致没有任何此类事件发生。
答案 2 :(得分:0)
由于 "使命:不成功"不会以"不成功"。
开头[^ un] 成功只是因为它匹配"成功"因为[^ un] 对于#34;任务:不成功"因为正则表达式通常只适用于" -successful"无论[^ un] *的有效性如何。
[^ un] +成功意味着它必须也以un - 开头。
所以只需删除^,它应该像这样匹配 [未] +成功$
或(联合国)?成功的$哪个更好。