Regex 为什么/[^un]*成功的$/match“;任务:不成功;,但是/[^un]+;成功的$/不会吗?
我现在正在学习正则表达式。如果*表示0个或多个匹配项,+表示1个或多个匹配项,那么这两个正则表达式短语不应该与字符串不匹配吗?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个或更多)不会导致没有任何此类事件发生。因为 “任务:未成功”不以“未成功
[^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-开始
所以只要删除^,它就会像这样匹配
[联合国]+成功$
或者(联合国)?哪一个更好