匹配逗号后面的空格的正则表达式?

7
我正试图创建一个用于匹配格式为 Toys, Cars, Some Other Topic 的标签的 Ruby 正则表达式,但我不能想出如何使其在逗号和其后的空格之后拆分它,但如果标签中有空格,则不会拆分。这是我想出的代码http://rubular.com/r/ptjeQ1KyoD,但目前还不正确。/[\/,$\(\s+)]/
4个回答

19
你可以直接使用/,\s*/(比你现在用的要简单得多!):
'Toys, Cars, Some Other Topic'.split /,\s*/
=> ["Toys", "Cars", "Some Other Topic"]

谢谢,正是那些 [] 引起了问题,与我所需的不匹配。我使用了这个并去掉了括号,现在它完美地工作了。谢谢。 - Kevin
@Kevin:是的,方括号完全是用于其他用途的。(例如,[a-e]可以匹配 ae 之间的任何单个字符)。 - C. K. Young

6

您应该只使用:

,\s+

这将匹配所有逗号后面跟着一个或多个空格字符,并且不匹配Some之后的空格。

谢谢,我之前尝试过使用 [,\s+] 但是没有成功,当我移除括号后它就可以工作了。非常感谢。 - Kevin
如果需要匹配空格,这个比被接受的答案更好,因为\s+将匹配一个或多个\s(空格)字符,而\s*将匹配零个或多个 - MattSturgeon

0
你可以使用 (/,/x) 将所有字符串以逗号(,)分割。
在这里检查。

http://rubular.com/r/8XdjgLK19g

'Toys, Cars, Some Other Topic'.split(/,/x)
=> ["Toys", "Cars", "Some Other Topic"]

-1
function Validate(txt) { txt.value = txt.value.replace(/[^, a-zA-Z]+/g, ''); }
函数验证(Validate){ txt.value = txt.value.replace(/[^,a-zA-Z]+/g,''); }

为了帮助 OP 解决当前的问题,可以在回答中添加一些解释说明。 - ρяσѕρєя K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接