[英]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
是大寫字母。
我如何檢查以確保如果下一個字母是小寫字母,那么我應該保持該資本不受影響。 ( Programming
的P
)
使用否定前瞻:
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.