繁体   English   中英

正则表达式匹配除数字和特殊字符以外的所有内容

[英]Regex match everything except numbers and special characters

对于此列表,我如何提取除数字和特殊字符之外的所有内容。

Jéssica Andrade 1
Joanna Jędrzejczyk
8 Maurício Rua
Jiří Procházka
(6) Anthony Smith
Volkan Oezdemir
Nikita Krylov
Johnny Walker 9

所需输出/匹配:

Jéssica Andrade
Joanna Jędrzejczyk
Maurício Rua
Jiří Procházka
Anthony Smith
Volkan Oezdemir
Nikita Krylov
Johnny Walker

[az AZ]+仅匹配英文字符。 [^\\x00-\\x7F]+[^\-\]+仅匹配非英文字符。

不知道从这里做什么。

尝试以下正则表达式(带有i标志),

([a-z\u00C0-\u024F] ?)+

正则表达式演示


解释

  • [az] - 匹配任何字母字符( i启用)
  • ? - 匹配空格 0 或 1 次

你可以在re.sub使用这个正则表达式:

\s*(?:\d|[^\w\s])+\s*

正则表达式演示

正则表达式详情:

  • \\s* : 匹配 0 个或多个空格
  • (?:\\d|[^\\w\\s]) :匹配数字或不是单词字符且不是空格的字符。 匹配 1 个或多个此非捕获组。
  • \\s* : 匹配 0 个或多个空格

代码:

import re

regex = r"[ \t]*(?:\d|[^\w\s])+[ \t]*"

test_str = ("Jéssica Andrade 1\n"
    "Joanna Jędrzejczyk\n"
    "8 Maurício Rua\n"
    "Jiří Procházka\n"
    "(6) Anthony Smith\n"
    "Volkan Oezdemir\n"
    "Nikita Krylov\n"
    "Johnny Walker 9\n")

result = re.sub(regex, "", test_str, 0, re.UNICODE)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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