[英]Regex to split this string after '.' if there is a capital letter [A-Z] after it
[英]Python Regex - STRING with [A-Z] and DIGITS [\d]
import re
str_1 = "ABABABABABAabababaacdcdcdcd"
str_2 = "ABABABABAB1ab2babaacdcdcdcd"
str_3 = "123456A"
str_4 = "123456"
#str_3Plus_d = re.search(r'(?=.*?\d)[A-Z\d]{10,}',str_2).group(0)
str_3Plus_d = re.search(r'(?=.*?\d)[A-Z\d]{2,4}',str_2).group(0)
print(str_3Plus_d)
#str_3plus_a = re.search(r'(?=.*?\d)(?=.*?[A-Z])[A-Z\d]{3,}',str_4).group(0)
#str_3plus_both = re.search(r'(?=.*?\d)(?=.*?[A-Z])[A-Z\d]{3,}',str_4).group(0)
我一直在搜索字符串([AZ] 和數字)。 我在這里搜索了類似的問題 - https://stackoverflow.com/a/28334645/4928635 ,它說(?=.*?\\d) “檢查至少一位數字”,但這似乎不是案子。 正如在 -
str_3Plus_d = re.search(r'(?=.*?\d)[A-Z\d]{2,4}',str_2).group(0)
print(str_3Plus_d)
它給我打印了一個沒有數字的字符串? 它在我的 JupyterNotebook 中打印的字符串如下所示 -
ABAB
如何捕獲帶有 - “可變數量的字符和至少 2 位數字,最多 4 位數字的字符串,例如 - 如何捕獲 - AAABBB2223”...
進一步說明——
@pm-2ring :- 數字和字母字符可以以任何順序出現,我試圖捕獲的子字符串的長度可能會有所不同。
@jean-françois-fabre :-您似乎已經刪除了您的答案-您提供的代碼完全符合您的要求-謝謝。
@clasg :- 今天你的評論和回答都教會了我很好 - 我非常感激 - 我會在某個時候回復並讓你知道我是否想支持你的回答 - 非常感謝。
您可以通過將量化移動到前瞻性和一些...
^(?=(?:[^\d\n]*\d){2,4}[^\d\n]*$)[A-Z\d]*$
它有點復雜,但可以正常工作。
[^\\d\\n]
匹配除數字或換行符以外的任何內容。 使正前瞻匹配這個構造任意次數( *
),后面跟着一個數字,然后重復此2-4次,最后接着非數字/ LF再次,使得只有當它包含之間匹配的字符串2 位和 4 位數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.