簡體   English   中英

如何創建替換字符的Python正則表達式?

[英]How to create Python Regex that replaces characters?

我在尋找創建適當的正則表達式的方式時遇到了麻煩,該正則表達式可以替換字符串中與z,AZ,0-9和|不同的任何內容。

到目前為止,我有:

 re.sub(r'[\W_]+', '', s)

這對於字母數字字符很好用,但是我還需要使其對管道(“ |”)有效。 有人知道怎么做嗎?

例如,如果我有:

name&|surna.me|ag,e

我需要它像:

name|surname|age

不同於az,AZ,0-9和|。

您需要一個否定的字符類

s = re.sub(r'[^a-zA-Z0-9|]+', '', s)

[開始字符類, ^告訴正則表達式引擎,它應該與類中定義的內容之外的其他任何內容匹配,其余的是您的范圍/字符。 ]關閉類,並使其與+匹配1次或多次出現的所需字符。

參見regex演示Python演示

import re
s = 'name&|surna.me|ag,e'
s = re.sub(r'[^a-zA-Z0-9|]+', '', s)
print(s)
# => name|surname|age

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM