如何使用大写字母替换大写字母后跟一段时间?

时间:2013-06-02 21:56:52

标签: ruby regex

任何时候字符串都包含大写字母后跟一个句号,我想用大写字母替换大写字母和句号。

Today MR. Johnson walked to the mail box.
=> Today MR Johnson walked to the mail box.

William SR. won the race.
=> William SR won the race.

我尝试使用gsub完成此操作:

MyText = "William SR. won the race."
MyText = MyText.gsub(/[A-Z]\./,**I DON'T KNOW WHAT TO PUT HERE**]

我可以匹配大写字母后跟句点,但我无法弄清楚如何用句号之前的大写字母替换我的匹配。

2 个答案:

答案 0 :(得分:7)

另一种没有环视和使用捕获组的方法:

MyText = MyText.gsub(/([A-Z])\./,'\1')

答案 1 :(得分:5)

您应该使用positive look behind来匹配它,并将其替换为空。

MyText = "William SR. won the race."
MyText = MyText.gsub(/(?<=[A-Z])\./, '')

以下是Rubular的example。如果您知道要进行替换而不是复制,则可以使用gsub!