Regex 为什么/[^un]*成功的$/match“;任务:不成功;,但是/[^un]+;成功的$/不会吗?

Regex 为什么/[^un]*成功的$/match“;任务:不成功;,但是/[^un]+;成功的$/不会吗?,regex,regex-negation,regex-greedy,Regex,Regex Negation,Regex Greedy,我现在正在学习正则表达式。如果*表示0个或多个匹配项,+表示1个或多个匹配项,那么这两个正则表达式短语不应该与字符串不匹配吗?[^un]表示匹配除u或n之外的任何字符。因此,[^un]*successful匹配,因为它重复0次[^un]+successful将失败,因为在成功之前有一个n字符。因为[^un]表示“不是u或n”,而*表示0或更多(如您所知…) 在这种情况下,出现0次“非u或n”并后跟“成功”,因此匹配。+(1个或更多)不会导致没有任何此类事件发生。因为 “任务:未成功”不以“未成功

我现在正在学习正则表达式。如果*表示0个或多个匹配项,+表示1个或多个匹配项,那么这两个正则表达式短语不应该与字符串不匹配吗?

[^un]
表示匹配除
u
n
之外的任何字符。因此,
[^un]*successful
匹配,因为它重复0次
[^un]+successful
将失败,因为在成功之前有一个
n
字符。

因为
[^un]
表示“不是u或n”,而
*
表示0或更多(如您所知…) 在这种情况下,出现0次“非u或n”并后跟“成功”,因此匹配。
+
(1个或更多)不会导致没有任何此类事件发生。

因为 “任务:未成功”不以“未成功”开头

[^un]successful之所以有效,是因为它与“successful”匹配,因为[^un]对于“Mission:unccessful”没有用处,因为正则表达式通常只与“-successful”之类的值一起工作,而不管[^un]*

[^un]+成功意味着它也必须从un-开始

所以只要删除^,它就会像这样匹配 [联合国]+成功$

或者(联合国)?哪一个更好