正则表达式匹配 GSM 字符集

Mar*_*rkO 4 python regex

这是一个 GSM 字符集(如下)。我需要确保只有包含这些字符的文本才会匹配。如果文本包含此范围之外的任何内容 if 将不匹配...

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567889@?£_!1$"¥#è
?¤é%ù&ì\ò(Ç)*:Ø+;ÄäøÆ,<LÖlöæ-=ÑñÅß.>ÜüåÉ/§à¡¿' 
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的...

@£$¥èéùìòÇ\fØø\nÅå?_?????????ÆæßÉ !\"#¤%&'()*+,-./[0-9]:;<=>\?¡[A-Z]ÄÖÑܧ¿[a-z]äöñüà\^\{\}\[~\]\|€
Run Code Online (Sandbox Code Playgroud)

我需要一个只匹配以下内容的正则表达式

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567889@?£_!1$"¥#è
?¤é%ù&ì\ò(Ç)*:Ø+;ÄäøÆ,<LÖlöæ-=ÑñÅß.>ÜüåÉ/§à¡¿'
Run Code Online (Sandbox Code Playgroud)

如何?谢谢。

更新:

 rule = re.compile(r'^[\w@?£!1$"¥#è?¤é%ù&ì\\ò(Ç)*:Ø+;ÄäøÆ,<LÖlöæ\-=ÑñÅß.>ÜüåÉ/§à¡¿\']+$')

    if not rule.search(value):
        msg = u"Invalid characters."
        raise ValidationError(msg)
Run Code Online (Sandbox Code Playgroud)

Mik*_*keM 5

尝试

r'^[\w@?£!1$"¥#è?¤é%ù&ì\\ò(Ç)*:Ø+;ÄäøÆ,<LÖlöæ\-=ÑñÅß.>ÜüåÉ/§à¡¿\']+$'
Run Code Online (Sandbox Code Playgroud)

如果要在还包含其他字符的字符串中匹配上述字符,请删除前导^和尾随$.

请注意,上述内容不允许使用空格字符。如果您想包含它们,只需在集合中添加一个空格(或者\s如果您还想包含换行符,则添加)。