为什么下面的第二个split
会返回标点符号?为什么在正则表达式中使用括号会改变输出?
str = "This is a test string. Let's split it."
str.split(/\. /)
# =>["This is a test string", "Let's split it."]
str.split(/(\. )/)
# =>["This is a test string", ". ", "Let's split it."]
答案 0 :(得分:1)
因为第二个代码使用包含组的正则表达式。来自String#split
:
如果模式是
Regexp
,则str
被划分为模式匹配的位置。只要模式匹配零长度字符串,str就会分成单个字符。 如果模式包含组,则相应的匹配也将在数组中返回。