python regex,删除除撇号外的转义符和标点符号

2024-10-01 15:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根像这样的绳子:

"aaa\n\t\n asd123asd water's tap413 water blooe's"

如何使用regex删除除撇号之外的所有转义字符、数字和标点符号?在

我对正则表达式还很陌生,如果正则表达式的公式很复杂,请解释每个表达式的含义,我将不胜感激


Tags: 表达式数字regex公式含义标点符号wateraaa
3条回答
import re
snt="aaa\n\t\n asd123asd water's tap413 water blooe's"
"".join(re.findall("[^\n\t\d:.,]+",snt))

我不确定您具体浏览的是什么,但是((\\n|\\t|\.|\ |\,|\;)+)+可以选择您的规范。。。在regexr.com中尝试您自己的正则表达式

您正在寻找一个search and replace方法,在Python中应该是re#sub()。在

只需将非字母撇号([^a-zA-Z' ]+)替换为''(无)。在

-哦,那逃走的角色呢?
R: 当在字符串中时,它们将变成一个单独的字符,\n将变成换行符,例如,它不是字母或'。在

相反,如果您实际上在字符串中转义了一个转义字符(比如:"abc\\nefg"),您应该在正则表达式的开头添加一个\\\\.|,它将与反斜杠+任何其他字符相匹配(因此它将是:\\\\.|[^a-zA-Z' ]

以下是工作示例:

import re
s = "aaa\n\t\n asd123asd water's tap413 water blooe's"
replaced = re.sub("[^a-zA-Z' ]+", '', s)
print(replaced)

https://repl.it/repls/ReasonableUtterAnglerfish


Would appreciate it if you can explain what each expression means

解释,所以:

  • \\\\-匹配反斜杠(为什么是四个?{10是一对反斜杠,你将如何在编译中转换成一对反斜杠。在
  • .-匹配除换行符之外的任何字符。在
  • |-或表达式,匹配之前或之后的内容。在
  • [^...]-必须是这些字符之一(内部)。在
  • a-zA-Z' -匹配a到{},A到{},'或{}。在
  • +-量词,这里不需要,但可以减少匹配,从而减少执行时间(这将被翻译为“后面的一个或多个出现”)。在

相关问题 更多 >

    热门问题