簡體   English   中英

正則表達式:在字符串開頭重復模式

[英]Regular expression: repeating patterns in the beginning of string

例如,考慮以下字符串: "apple1: apple2: apple3: some random words here apple4:"

我只想匹配apple1,apple2和apple3,而不匹配apple4。 我很難弄清楚如何將其存檔。

任何幫助表示贊賞。

謝謝。

如果您使用的是.net,則可以匹配以下模式,然后使用該組的Captures屬性來獲取所有匹配的蘋果。

(?:(apple\d).*?){3}

如果您只想匹配第一個:

apple\d

甜美而簡單。 只需對此進行一次比賽。

從您的評論,這聽起來像你想匹配的出現apple ,然后在整個字符串的數字,除了的發生apple后面跟着一個數字字符串的結尾。

>>> import re
>>> text    = 'apple1: apple2: apple3: some random words here apple4:'
>>> matches = re.findall(r'(\bapple\d+):(?!$)', text)

['apple1', 'apple2', 'apple3']

因此,也許是這樣的:

^([A-Za-z]+)[^A-Za-z]+(\1[^A-Za-z]+)+

http://regexr.com/38vvb

抱歉,我的問題格式不正確,目前尚不清楚。

我找到了解決方案:

r'\s*((apple)\d+[ \:\,]*)+'

感謝你的幫助!

暫無
暫無

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

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