还是关于正则表达
import retext = "ASDF QBC123,A.S123D A.S123D A,BSD"
text_tmp = re.split(',',text)
print text_tmp
l = re.search(r'^A.', text_tmp)
print l.group()
这是我的实验程序,我希望将 字符串中的A.后面的S123D提取出来,原来打算直接用re.search(r'^A.', text)后来发现只能认到了ASDF的那个A
然后想用split空格,将text分割成 ASDF及QBC123, A.S123D 还有A.S123D 最后A,BSD,然后用'^A.'来匹配
结果报错“TypeError: expected string or buffer”
search 只會找到第一個就停下來了……
要把所有符合條件的找出來要用 findall 。
你試一下吧!不行再討論! 回复 1# jasonzou patten=re.compile(r'A\.S.*?D')
index=0
while True:
match=patten.search(text,index)
if match==None:
break
result=match.group()
print(result)
index=match.end() 这个最好还是用findall吧, 另外"^"锚位是指匹配字符串的开头,在这儿应该没必要使用"^".import re
text = "ASDF QBC123,A.S123D A.S123D A,BSD"
pattern = re.compile(r'(?<=A\.)(+)')
matches = pattern.findall(text)
print matches
页:
[1]