簡體   English   中英

Python Regex - 檢查大寫字母后面的大寫字母

[英]Python Regex - checking for a capital letter with a lowercase after

我正在嘗試檢查一個大寫字母,后面有一個小寫字母。 訣竅是會有一堆垃圾大寫字母和數字直接出現在它之前。 例如:

AASKH317298DIUANFProgramming is fun

正如你所看到的,在我們需要的短語之前有一些我們不需要的東西, Programming is fun

我試圖使用正則表達式通過取每個字符串,然后用''代替它,因為原始字符串不必保留。

re.sub(r'^[A-Z0-9]*', '', string)

這段代碼的問題在於它讓我們rogramming is fun ,因為P是大寫字母。

我如何檢查以確保如果下一個字母是小寫字母,那么我應該保持該資本不受影響。 ProgrammingP

使用否定前瞻:

re.sub(r'^[A-Z0-9]*(?![a-z])', '', string)

這匹配任何后面沒有小寫字符的大寫字符或數字。

演示:

>>> import re
>>> string = 'AASKH317298DIUANFProgramming is fun'
>>> re.sub(r'^[A-Z0-9]*(?![a-z])', '', string)
'Programming is fun'

你也可以像這樣使用匹配:

>>> import re
>>> s = 'AASKH317298DIUANFProgramming is fun'
>>> r = r'^.*([A-Z][a-z].*)$'
>>> m = re.match(r, s)
>>> if m:
...     print(m.group(1))
... 
Programming is fun

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM