簡體   English   中英

正則表達式:匹配單個字符而中間不匹配字符

[英]Regex: Matching individual characters without matching characters inbetween

我有一個簡單的正則表達式查詢。

這是輸入:

DLWLALDYVASQASV

所需的輸出是加粗字符的位置。 DLWLAL DY VA S QASV

因此它將是D:6,Y:7,S:10。

我正在使用python,所以我知道我可以使用span()start()來獲取比賽的開始位置。 但是,如果我嘗試使用諸如DY.{2}S ,它將匹配介於兩者之間的字符,並且只給我匹配的第一個(在跨度的情況下為最后一個)字符的位置。

是否有功能或方法可檢索每個指定字符的位置,但不包括中間的字符?

match = re.search(r'(D)(Y)..(S)', 'DLWLALDYVASQASV')
print([match.group(i) for i in range(4)])
>>> ['DYVAS', 'D', 'Y', 'S']
print([match.span(i) for i in range(4)])
>>> [(6, 11), (6, 7), (7, 8), (10, 11)]
print([match.start(i) for i in range(4)])
>>> [6, 6, 7, 10]

您可以將正則表達式的子表達式放在方括號中,然后通過match對象訪問相應的子字符串。 有關更多詳細信息,請參見Match對象的文檔

暫無
暫無

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

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