...并且对于以小写字母开头并以标点符号结尾的字符串返回false。
这样的事情:
def first_word_capitalized_and_ends_with_punctuation?(text)
!!text.match(/^(A-Z)...$\W/)
end
答案 0 :(得分:2)
你只需要改变一下正则表达式
def first_word_capitalized_and_ends_with_punctuation?(text)
!!text.match(/^[A-Z].*\W$/)
end
修改强>
根据@spickermann的建议,您也可以使用match?
def first_word_capitalized_and_ends_with_punctuation?(text)
text.match?(/^[A-Z].*\W$/)
end
答案 1 :(得分:0)
您可以使用此正则表达式。它只匹配字符串开头的大写字母,介于两者之间的所有内容以及末尾的标点字符(\.
,
:
或;
):
^[A-Z].*[\.,:;]$
这里用于你的代码:
def first_word_capitalized_and_ends_with_punctuation?(text)
!!text.match(/^[A-Z].*[\.,:;]$/)
end
使用\W
也会匹配空白字符。