Python检查字符串是否包含字符

时间:2019-09-05 13:35:35

标签: python

我正在处理500GB的数据,以仅查找具有字符的行。 你能给我推荐一种高效/快捷的方法吗?

Data is like:
%^^%^^%^^%
This is a valid 
*%^%^ Valid
This is not a valid one

输出应为:

Data is like:
This is a valid 
*%^%^ Valid
This is not a valid one

我正在尝试: isalpha() 问题是它将消除线     *%^%^有效

计算一些代码也无法正常工作

if line.isalpha()=='True':
  print(line)

这不起作用...

我可以使用正则表达式,但可以读一些会减慢它的速度吗?

2 个答案:

答案 0 :(得分:0)

使用正则表达式,例如:

>>> import re
>>>
>>> pattern = re.compile(r'\A[%|\^]*$')
>>>
>>> pattern.match('%^ Text')  # no match
>>> pattern.match('%^^%^')  # match
<re.Match object; span=(0, 5), match='%^^%^'>

答案 1 :(得分:0)

您未正确使用isalpha,当字符串中的所有字符均为字母时,它将返回True

您可以尝试使用anymap来确保该行中至少有一个字符是字母。

txt = """
Data is like:
%^^%^^%^^%
This is a valid 
*%^%^ Valid
This is not a valid one
"""

for line in txt.split("\n"):
    if any(map(str.isalpha, line)):
        print(line)

打印:

Data is like:
This is a valid 
*%^%^ Valid
This is not a valid one