我需要一个Python正则表达式,从这样的字符串中为~
和^
之间的所有字符串提供:
~~~~ AAA ^ BBB ^ CCC > DDD ^
我试过这个:
import re
target = ' ~~~~ AAA > ^ BBB ^ CCC > DDD ^ '
matchObj = re.findall(r'~(.*?)\^', target)
print matchObj
但结果是:
['~~~ ABC ']
我的期望是:
['AAA', 'BBB', 'CCC', 'DDD']
或
['^AAA', '^BBB', '^CCC', 'DDD']
我想这样做,因为我试图从HTML页面中提取文本,如下所示:
<td class="cell-1">
<div><span class="value-frame"> ~~~~ ABC ^ DEF ^ HGK > LMN ^</span></div>
</td>
答案 0 :(得分:0)
只要您使用BeautifulSoup正确解析HTML并且只留下了span的内容,那么您应该只能将其用作RegEx:
import re
target = ' ~~~~ AAA ^ BBB ^ CCC > DDD ^ '
matchObj = re.findall('(\w{3})', target)
print(matchObj)
<强>输出:强>
['AAA', 'BBB', 'CCC', 'DDD']
答案 1 :(得分:0)
你可以这样做:
[x.strip('~ ') for x in re.split(' *[\^\>] *', s) if x]
# ['AAA', 'BBB', 'CCC', 'DDD']