[英]regular expressions find string letters, and string letters with combination of string numbers python
x = ['86050023328185523 THE B WITH PEANUT 140G'],['86050023328185523 ABC WITH BanaNA 40G'],['86050023328185523 B B Z WITH JElly 250G']
假设这是我们包含所有字符串的变量。 output 应该是所有的,除了字符串中的数字。
所需的 output:
['THE B WITH PEANUT 140G']
['ABC WITH BanaNA 40G']
['B B Z WITH JElly 250G']
代码:
x = ['86050023328185523 A B Z WITH PEANUT 140GB'],['86050023328185523 A B Z WITH PEANUT 140GB'],['86050023328185523 A B Z WITH PEANUT 140GB']
for e in x:
for i in e:
#print(type(i)) <class 'str'>
f = re.findall(r'\d+',i)
print(f)
代码结果:
['86050023328185523', '140']
['86050023328185523', '40']
['86050023328185523', '250']
我相信使用字符串方法的列表理解就足够了:
[[' '.join(s for s in l[0].split() if not s.isnumeric())] for l in x]
[['THE B WITH PEANUT 140G'],
['ABC WITH BanaNA 40G'],
['B B Z WITH JElly 250G']]
使用示例中的字符串子列表列表,您可以执行以下操作:
>>> [[re.sub(r'^\d+[ \t]*','',e) for e in sl] for sl in x]
[['THE B WITH PEANUT 140G'], ['ABC WITH BanaNA 40G'], ['B B Z WITH JElly 250G']]
[ \t]
相当于 POSIX [:blank:]
用于水平空格字符; 您可以将\s
用于在 ASCII 中定义为[ \t\r\n\v\f]
的所有空格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.