问题摘要
我有以下regex python代码:
在……里面
lst =[' ', 'US$170.8980\xa0billion', '[2]', '\xa0(2018)']
for i in lst:
pat = re.compile(r'([\x1F-\x7F]+).+(\d+)')
results=pat.search(i)
print(results)我用我的正则表达式得到了这个输出:
输出
None
<_sre.SRE_Match object; span=(0, 11), match='US$170.8980'>
None
<_sre.SRE_Match object; span=(1, 6), match='(2018'>期望输出
理想情况下,我希望得到这个输出:
[US$170.8980-billion-(2018)]发布于 2019-08-04 19:31:04
这对我来说很管用:
string = 'US$170.8980\xa0billion'
pat = ''.join(re.findall('([a-zA-Z0-9$.])', string))适配
lst = [' ', 'US$170.8980\xa0billion', '[2]', '\xa0(2018)']
for i in lst:
pat = ''.join(re.findall('([a-zA-Z0-9$.\s])', i))
print(pat)备选方案:
(re.findall('([^�])', i)发布于 2019-08-04 19:05:46
也许,这句话很接近你的想法,
import re
lst =[' ', 'US$170.8980\xa0billion', '[2]', '\xa0(2018)']
output =''
for index,item in enumerate(lst):
item = item.strip()
if re.match('\[\d+\]',item) == None:
if index == len(lst)-1:
output +='-'
output += re.sub(r'[^ -~]','-', item)
print(output)不过不太确定。
输出
US$170.8980-billion-(2018)https://stackoverflow.com/questions/57349295
复制相似问题