鍍金池/ 問答/Python  HTML/ 正則表達(dá)是怎樣取以a開頭后的所有字符串?

正則表達(dá)是怎樣取以a開頭后的所有字符串?

目標(biāo)字符串"xxab未來a未怎么樣"
想得到所有以a開頭的字符串,即“ab未來a未怎么樣”和“a未怎么樣”
這個(gè)匹配表達(dá)是怎么寫?

回答
編輯回答
尐飯團(tuán)

使用正則 ^a.*

2017年10月17日 17:52
編輯回答
妖妖

沒找到特別簡(jiǎn)單的方法,你看看這樣行不行?

import re

target = 'xxab未來a未怎么樣'
pattern = re.compile(r"a(.+)")
target_cy = target

for num in range(target.count('a')):
    result = re.findall(pattern, target_cy)
    target_cy = result[0]
    target_final = 'a' + target_cy
    print(target_final)

ab未來a未怎么樣
a未怎么樣

可參考:Python爬蟲學(xué)習(xí)之(三)| 快速入門正則表達(dá)式

2017年4月8日 09:01
編輯回答
莓森
import re

p = re.compile('(a.*)')

# 遞歸版本
def foo_rec(s):
    m = p.search(s)
    if m is None:
        return
    sa = m.group(0)
    print(sa)
    return foo_rec(sa[1:])

# 循環(huán)版本
def foo_lp(s):
    while 1:
        m = p.search(s)
        if m is None:
            break
        sa = m.group(0)
        print(sa)
        s = sa[1:]
>>> content = 'xxab未來a未怎么樣'
>>> foo_rec(content)
ab未來a未怎么樣
a未怎么樣
>>> foo_lp(content)
ab未來a未怎么樣
a未怎么樣
2017年5月7日 16:02
編輯回答
司令
import re

s, p = 'xxab未來a未怎么樣',  re.compile(r"a.*")
r = next(p.finditer(s), False)
while r:
    print(r.group()) # 結(jié)果
    r = next(p.finditer(s, r.start() + 1), False)

2018年6月1日 18:32