我是Regex的新手。 这个问题问我,你能想到一个正则表达式来查找字符串开头和结尾的空格吗?在检查下面的扰流板之前自己尝试一下:
解决方案是这样的: (?:^ \ S +)|(?:\ S + $)
这个正则表达式如何工作?
你能指导我完成每一步吗? 这一系列的正则表达式做什么? 请帮帮我。感谢。
答案 0 :(得分:2)
()
匹配组。
?:
将表达式设为“非捕获”。
^
从字符串的开头开始。
$
匹配字符串的结尾。
|
表示“或”。
\s
匹配空格。
+
贪婪的重复。 (有关详细信息,请参阅以下链接)
所以把它们放在一起,你得到一个表达式,在字符串的开头 OR 结尾处查找空格。
您可以阅读有关正则表达式here的乐趣的更多信息。
答案 1 :(得分:1)
你实际上不需要用(?:)分组。模式^\s+|\s+$
也可以正常工作。此外,您可能希望在这种情况下使用\ s(例如代替[\ t]),因为它也会匹配换行符(尽管如果您需要搜索尾随换行符,可能需要这样做)。
答案 2 :(得分:0)
答案 3 :(得分:0)
此正则表达式有两个主要部分,由|
分隔。这意味着如果任何字符串与(?:^\s+)
或(?:\s+$)
匹配,那么它就是匹配项。
^\s+
表示“字符串开头的一个或多个空白符号”。
\s+$
表示“字符串末尾有一个或多个空白符号”。
将保存与(?:)
内的正则表达式匹配的任何子字符串以供将来使用(它称为匹配组)。如果您只需要查看是否匹配,则无需担心。在这种情况下,您可以将正则表达式重写为^\s+|\s+$
答案 4 :(得分:0)
对于正则表达式
^\s+
会找到前导空格
并且模式\ s + $将找到尾随空格。
您可以通过以下链接阅读有关正则表达式的乐趣的更多信息: