正则表达式的特殊字符
问题描述:
我需要一个正则表达式验证字符串与一个或多个字符:正则表达式的特殊字符
- AZ
- AZ
- “
- àòèéùì
- 简单的白色空间
例如这些字符串是valide:
D' argon calabrò
maryòn l' Ancol
这些字符串是NOT的Valide:
hello38239
my_house
work [tab] with me
我tryed此:
re.match(R “^ [A-ZA-Z“òàèéìù] + $”,字符串)
似乎在我的Python外壳,但在Django工作,我得到这个错误:
SyntaxError at /home/
("Non-ASCII character '\\xc3' ...
为什么?
编辑:
我已经加入# - - 编码:UTF-8 - - 在我forms.py顶部但有琴弦,E,O,U,E或“永远不匹配。
这是我forms.py清洁方法:
def clean_title(self):
if(re.match(r"^[a-zA-Z 'òàèéìù]+$", self.cleaned_data['title'].strip())):
return self.cleaned_data['title'].strip()
raise forms.ValidationError(_("This title is not valid."))
答
如果你的Python源文件,你的用户的非ASCII字符,你应该添加适当的编码到源文件的这样的顶部:
# -*- coding: utf-8 -*-
utf_string='čćžđšp'
Defining Python Source Code Encodings
这似乎为我工作得很好:
>>> import re
>>> mystring = "D' argon calabrò"
>>> matched = re.match(r"^([a-zA-Z 'òàèéìù]+)$", mystring)
>>> print matched.groups()
("D' argon calabr\xc3\xb2",)
我在forms.py的顶部添加了# - * - coding:utf-8 - * - 。 现在我不回避上面的错误(“非ASCII字符'\\ xc3'),但如果字符串cointainà,é,è,ò,ù或ì然后不匹配。 ?谢谢^ _^ – xRobot 2010-05-16 13:03:54
我刚刚在上面加了一些其他的信息:) – xRobot 2010-05-16 13:09:03
不知道,在我看来,正则表达式工作正常... – 2010-05-16 16:03:39