我想删除除括号外的所有非字母数字字符以及python中它们之间的内容。
例如:
GROUP BY AGE_RANGE
成为
My son's birthday [[David | David Smith]] $$ (is) "today" 2019 ][
这是我现在的功能:
My son s birthday [[David | David Smith]] is today 2019
它像我想要的那样替换所有非字母数字,但是它替换了方括号和内部的管道。我不知道如何在子方法中添加新的正则表达式并添加新条件。
答案 0 :(得分:2)
您可以使用alternation选择要保留的内容,而不是替换[[
到]]
或|
匹配字词{ {1}},然后将这些部分连接回字符串。
\w+
这将匹配
\[\[[^]]+\]\]|\w+
使用否定的字符类从\[\[[^]]+\]\]
到[[
匹配]]
或|
匹配单词字符1次以上例如:
\w+
答案 1 :(得分:0)
import re
x = "My son's birthday [[David | David Smith]] $$ (is) \"today\" 2019 ]["
def clean(texte):
return re.sub(r"[^\[\[[^\]\]+\]\]|\w]+", " ", texte).lower()
print(clean(x))
>>> 'my son s birthday [[david | david smith]] is today 2019 ]['
然后您可以分割“]”并保留第一个索引。