需要正则表达式帮助。与模式匹配

时间:2014-03-03 23:28:36

标签: objective-c regex

我是Regex的新手。 这个问题问我,你能想到一个正则表达式来查找字符串开头和结尾的空格吗?在检查下面的扰流板之前自己尝试一下:

解决方案是这样的:      (?:^ \ S +)|(?:\ S + $)

这个正则表达式如何工作?

你能指导我完成每一步吗? 这一系列的正则表达式做什么? 请帮帮我。感谢。

5 个答案:

答案 0 :(得分:2)

()匹配组。

?:将表达式设为“非捕获”。

^从字符串的开头开始。

$匹配字符串的结尾。

|表示“或”。

\s匹配空格。

+贪婪的重复。 (有关详细信息,请参阅以下链接)

所以把它们放在一起,你得到一个表达式,在字符串的开头 OR 结尾处查找空格。

您可以阅读有关正则表达式here的乐趣的更多信息。

答案 1 :(得分:1)

你实际上不需要用(?:)分组。模式^\s+|\s+$也可以正常工作。此外,您可能希望在这种情况下使用\ s(例如代替[\ t]),因为它也会匹配换行符(尽管如果您需要搜索尾随换行符,可能需要这样做)。

答案 2 :(得分:0)

模式^ \ s +将找到前导空格,
并且模式\ s + $将找到尾随空格。

希望您觉得有帮助。

您可以使用regular expressions了解有关乐趣的更多信息。

答案 3 :(得分:0)

此正则表达式有两个主要部分,由|分隔。这意味着如果任何字符串与(?:^\s+)(?:\s+$)匹配,那么它就是匹配项。

^\s+表示“字符串开头的一个或多个空白符号”。

\s+$表示“字符串末尾有一个或多个空白符号”。

将保存与(?:)内的正则表达式匹配的任何子字符串以供将来使用(它称为匹配组)。如果您只需要查看是否匹配,则无需担心。在这种情况下,您可以将正则表达式重写为^\s+|\s+$

答案 4 :(得分:0)

对于正则表达式

          ^\s+ 

会找到前导空格

并且模式\ s + $将找到尾随空格。

您可以通过以下链接阅读有关正则表达式的乐趣的更多信息:

相关问题