2016-08-03 183 views
1

我需要一个给我~^在python中提取2个字符串之间的字符串?

之间的字符串我有串这样

:::ABC???,:::DEF???

我需要使用python

我想做的事情,让他们之间的字符串所有这一切,因为我试图从HTML页面提取文本。像这个例子一样

<td class="cell-1"> 
    <div><span class="value-frame">&nbsp;~ABC^,~DEF^</span></div> 
</td> 

回答

1

好像你想ABC和DEF,所以你需要编写再像这样(。*?)

import re 
target = ' <td class="cell-1"><div><span class="value-frame">&nbsp;~ABC^,~DEF^</span></div></td>' 
matchObj = re.findall(r'~(.*?)\^', target) 
print matchObj 
# ['ABC', 'DEF'] 

您可以了解更多关于重新模块

+0

是什么意思'(*。 ?)'? – dragon

1

您可以在生成器表达式中使用isalpha()函数。然后使用join()将字符组合为单个string

def extract_string(s): 
    return ''.join(i for i in s if i.isalpha()) 

输出示例:

print extract_string(':::ABC???,:::DEF???') 
>>> ABCDEF 

但是,如果你想~...^之间只提取字符仅用于提取所有字符,:

import re 
def extract_string(s): 
    match = re.findall(r"~([a-zA-z]*)\^", s) 
    return match 

输出示例:

s = '&nbsp;~ABC^,~DEF^' 
print extract_string(s) 
>>> ['ABC', 'DEF'] 

只是一个侧面说明:如果你使用解析正则表达式 /或字符串操作HTML,为famous S.O. reply建议,请使用HTML解析器;如Beautiful Soup库改为:D!

相关问题