繁体   English   中英

正则表达式查找字符串字母,以及字符串数字组合的字符串字母 python

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM