Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 正则表达式块否定_Objective C_Regex_Regex Negation_Nsregularexpression - Fatal编程技术网

Objective c 正则表达式块否定

Objective c 正则表达式块否定,objective-c,regex,regex-negation,nsregularexpression,Objective C,Regex,Regex Negation,Nsregularexpression,我想找出一个没有出现特定标记的字符串,例如: [\w]+ 其中不需要的将被解释为a、d、e、n、t和u。但我想要的是块字符串。我如何用正则表达式表达它? 我尝试过消极前瞻,但不起作用: .+?!不需要的+ 匹配…中的所有字符,但前提是表达式不以任何字符开头 匹配…中的所有字符,但前提是表达式不以任何字符开头。cHao,非常感谢您回答这个难题。然而,答案也很难。这个解决方案让我大吃一惊。只是想看看我的理解,尽管是命令?!不需要的。或不需要,它不会改变效果,对吗?为什么?:+被使用?它是否意味着除不

我想找出一个没有出现特定标记的字符串,例如:

[\w]+ 其中不需要的将被解释为a、d、e、n、t和u。但我想要的是块字符串。我如何用正则表达式表达它? 我尝试过消极前瞻,但不起作用:

.+?!不需要的+ 匹配…中的所有字符,但前提是表达式不以任何字符开头


匹配…中的所有字符,但前提是表达式不以任何字符开头。

cHao,非常感谢您回答这个难题。然而,答案也很难。这个解决方案让我大吃一惊。只是想看看我的理解,尽管是命令?!不需要的。或不需要,它不会改变效果,对吗?为什么?:+被使用?它是否意味着除不需要的字符外,任何字符位于单个字符的位置??:。。。将内容分组,但不捕获它。如果你不在乎捕获,你可以说。。。相反,但这有点浪费。无论哪种方法,要点都是使+应用于整个内容,这样它将匹配不是表达式开头的任何字符。至于整个过程,它的工作原理是这样的:它尝试匹配的每个字符,它首先对第一个字符进行一个负的前瞻性检查?!。。。以确保表达式不匹配。如果没有,则它会抓取该字符,并使用下一个字符重试。没有?:。。。或者可选地,…,则+将只应用于.,并且您将最终匹配任何不以不需要的字符串开头的字符串。但是,结果匹配在第一个字符之后的任何地方仍然可能有不需要的字符。这就是为什么您要在每个位置进行测试,因此,您要将前瞻和预测分组。一起。更改前向和后向的顺序。至少在一个主要方面会影响结果-因为。?!。。。如果您抓取一个字符,然后查找不需要的字符,则该模式仍可能出现在字符串的开头,而您不会看到它。这就是为什么你在抓到一个字符之前要检查一下。非常感谢。我现在知道它是怎么工作的了。你真可爱。这个问题我已经想了两年了。赵,非常感谢你回答这个难题。然而,答案也很难。这个解决方案让我大吃一惊。只是想看看我的理解,尽管是命令?!不需要的。或不需要,它不会改变效果,对吗?为什么?:+被使用?它是否意味着除不需要的字符外,任何字符位于单个字符的位置??:。。。将内容分组,但不捕获它。如果你不在乎捕获,你可以说。。。相反,但这有点浪费。无论哪种方法,要点都是使+应用于整个内容,这样它将匹配不是表达式开头的任何字符。至于整个过程,它的工作原理是这样的:它尝试匹配的每个字符,它首先对第一个字符进行一个负的前瞻性检查?!。。。以确保表达式不匹配。如果没有,则它会抓取该字符,并使用下一个字符重试。没有?:。。。或者可选地,…,则+将只应用于.,并且您将最终匹配任何不以不需要的字符串开头的字符串。但是,结果匹配在第一个字符之后的任何地方仍然可能有不需要的字符。这就是为什么您要在每个位置进行测试,因此,您要将前瞻和预测分组。一起。更改前向和后向的顺序。至少在一个主要方面会影响结果-因为。?!。。。如果您抓取一个字符,然后查找不需要的字符,则该模式仍可能出现在字符串的开头,而您不会看到它。这就是为什么你在抓到一个字符之前要检查一下。非常感谢。我现在知道它是怎么工作的了。你真可爱。这个问题在我脑子里已经想了两年了。
<xyz>(?:(?!unwanted).)+</xyz>