我有一個字符串刪除所有不大寫字母詞從一個字符串的正則表達式軌
"WELLS FARGO DEALER SERVICES May 18 06:11 4137 Reference# 10982"
我想刪除的一切,讓我得到
"WELLS FARGO DEALER SERVICES"
我怎樣才能做到這一點與正則表達式。我只想要所有的字眼。
我有一個字符串刪除所有不大寫字母詞從一個字符串的正則表達式軌
"WELLS FARGO DEALER SERVICES May 18 06:11 4137 Reference# 10982"
我想刪除的一切,讓我得到
"WELLS FARGO DEALER SERVICES"
我怎樣才能做到這一點與正則表達式。我只想要所有的字眼。
您可以用空字符串替換:/\W*\b\w*[^\WA-Z]\w*/
。
或處理Unicode字母:/\W*\b\w*[^\W\p{Lu}]\w*/u
要修剪的字符串的結尾,你可以在末尾添加|\W+\z
。 (你可以做這樣的事情修剪開頭)
這是@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+
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"
出色的工作!嘗試了幾串,它確實很棒!謝謝! – SupremeA