查找并打印python中非字母数字字符的数量

时间:2019-02-27 01:15:13

标签: python regex

我正在做一个项目,但在使re.findall正常工作方面遇到问题。这是到目前为止的代码(简短而有趣):

pattern = ['^a-zA-Z0-9_']

results = re.findall(pattern, (str(lorem_ipsum))
print(len(results))

以这种方式打印时出现语法错误。任何帮助将不胜感激。我时间紧迫,明天有更多时间会做些调整。

2 个答案:

答案 0 :(得分:0)

您在lorem ipsum之后缺少右括号,还需要将模式转换为原始字符串。本质上,模式必须是字符串而不是列表。我们在前面添加r,以确保逐字考虑反斜杠而不是将其转义。

pattern = r'[^a-zA-Z0-9\_]'

results = re.findall(pattern, (str(lorem_ipsum)))
print(len(results))

答案 1 :(得分:0)

您实际上不需要任何正则表达式即可。只需使用.isalnum()

text = "hello 23232@"

for character in text:
    if not character.isalnum():
        print("found: \'{}\'".format(character))

输出:

found ' '
found '@'