2016-08-05 37 views

回答

2

您可以用空字符串替換:/\W*\b\w*[^\WA-Z]\w*/

或處理Unicode字母:/\W*\b\w*[^\W\p{Lu}]\w*/u

要修剪的字符串的結尾,你可以在末尾添加|\W+\z(你可以做這樣的事情修剪開頭)

demo

+0

出色的工作!嘗試了幾串,它確實很棒!謝謝! – SupremeA

1

這是@CasimiretHippolyte出色答卷的增強。

(?:\W*\b\w*[^\WA-Z]\w*)+|(?<!\S)[^\S\r\n]+|\W+\z|\A\W+

這組他的回答成多量化組。
它增加了他的BOL/EOL修剪。

它還增加了多個空白的額外修剪,留下一個空格。
(這是因爲大寫字組之間有多個空格)。

擴展

(?: \W* \b \w* [^\WA-Z] \w*)+ 
| 
    (?<! \S) 
    [^\S\r\n]+ 
| 
    \W+ \z 
| 
    \A \W+ 
1
str = "WELLS FARGO DEALER SERVICES May 18 06:11 4137 Reference# 10982" 

如果你想全蓋字與字之間只有一個空間,它只是

str.split.select { |word| word =~ /\A[A-Z]+\z/ }.join(' ') 
    #=> "WELLS FARGO DEALER SERVICES" 
相關問題