2015-12-31 17 views
-1

我正在使用在線字典。使用正則表達式選擇全部大寫字母直到第一個小寫字符

當前我擁有包含在數據數組中的所有條目。

例:「WORD ENTRY一種語言的同一個詞在另一種語言」

我想要做的是選擇所有大寫字符,直到明年第一非大寫字母(可以是數字,可是括號等,但通常是一個小寫字母)。

我目前正在嘗試使用正則表達式,但沒有任何運氣!

任何幫助,非常感謝!

+1

豈不[A-Z] *取得成功?捕獲所有的大寫字母和空格 – HexedAgain

+0

@HexedAgain唯一的問題是,其他大寫字母將顯示在小寫字母的中間,當它是一個適當的名稱,即中國等 – user3186749

+1

請給我們一個代表性的例子,其中(理想情況下)所有的邊緣情況發生。 –

回答

1

如果正則表達式的味道是C#:

^\p{Lu}+(?:\s+\p{Lu}+)*\b 
+0

將'^'添加到開頭,將'\ b'添加到最後,我會加註。 '\ p {Lu}'也可以用於其他幾種風格,但主要的是正則表達式的結構,匹配一個或多個全大寫字*。 –

+0

最後的'\ b'是必要的,因爲沒有它,假設條目'ODIN Wotan'將產生匹配'ODIN W'。我知道OP說賽後的下一個角色將是小寫字母或不是字母,但挑戰在哪裏呢?定義中的首字母大寫是唯一使這個問題變得有趣的事情。 –

0

匹配所有領先(固定到開始),大寫字母和空格:

^[A-Z ]+ 

這個簡單的表達式將在每一個正則表達式的味道,我可以工作考慮到。

爲了不匹配目標的後間隔(S):

^[A-Z ]*?(?= *[^A-Z]) 
相關問題