如何在输出中摆脱这些u?
Regex:
Tregex1 = "1?\W*([2-9][0-8][0-9])\W*([2-9][0-9]{2})\W*([0-9]{4})(\se?x?t?(\d*))?"
代码:
for a in re.findall(Tregex1,text_value,re.IGNORECASE):
print a输出:
(u'877', u'638', u'7848', u'\n', u'')
(u'650', u'627', u'1000', u'\n', u'')
(u'650', u'627', u'1001', u'\nE', u'')
(u'312', u'273', u'4100', u'', u'')我尝试使用这些&遵循几个类似的links
a.encode('ascii', 'ignore')
a.encode('utf-8')
",".join(a)但他们都不起作用。
预期产出:
877-638-7848
650-627-1000
650-627-1001
312-273-4100我正在使用Python2.7
还有人能解释一下,为什么我有时会变得如此\n而\n其他的\n甚至是空白?
发布于 2016-06-20 10:23:10
试试这个:
for a in re.findall(Tregex1,text_value,re.IGNORECASE):
print '-'.join(a[:3])U只是告诉你这是一个unicode字符串。
the (.,.,)是元组的表示
加入(.)是连接……的字符串。带着-
a:3的意思是“只有a的前三个元素”
(要很好地解释python中的切片表示法,请看这里:https://stackoverflow.com/a/509295/327293)
发布于 2016-06-20 10:20:10
你的问题不是u。如果要以特定方式格式化结果,则应使用字符串格式函数。
print '-'.join(a)发布于 2016-06-20 10:21:42
U的意思是它是unicode。你可以随心所欲地对它进行重新编码。这将有效,并跳过空白值:
a = (u'877', u'638', u'7848', u'\n', u'')
print "-".join([x.strip() for x in a if x.strip() != u""])877-638-7848
https://stackoverflow.com/questions/37919884
复制相似问题