/(\w+)\s+?([a-z][A-Z])\s+?(\w+)/
现在我使用\s+?
来允许(可选)空格,这是正确的做法吗?
答案 0 :(得分:1)
您的正则表达式要求有一个或多个空格。
如果您希望空格完全可选(非非贪婪),则应使用\s*?
。
如果您只想要一个空格或没有空格,那么您应该使用\s?
。
如果您只想要空格而不是其他空格字符,则应使用[ ]*?
。我使用了字符类来使空格更明确,但不需要[]
。
答案 1 :(得分:1)
有两种方法:
/\s?/
匹配单个空格或没有空格。
/\s*/
匹配单个/多个空格或没有空格。
答案 2 :(得分:1)
+
运算符表示一次或多次重复。如果你想允许空格可选,意味着它们不能在那里,你需要使用*
运算符,这意味着重复0次或更多次。
或者,你可以使用类似的东西:(\s+?)?
,这实际上意味着可选地,可以有一个或多个空格。
话虽如此,坚持\s*?
将通过更清洁的正则表达式产生你想要的东西。