如何使用正则表达式检测字符串中的符号?
我正在为一所学校开发一个网页应用,里面有一些像班级名称(class_name)和课程名称(course_name)这样的东西。课程名称是班级名称的“父亲”,所以班级名称里必须包含课程名称。比如:
course_name = "Weeklies"
class_name = "Weeklies talks with Superstars"
上面的例子是完美且正确的。
不过,有时候用户会创建一些带有特殊符号的课程名称,这些符号会搞乱我为班级名称设置的单词边界规则(\b\b)。因为在课程名称中出现正则表达式的元字符时,单词边界检查总是返回假,因为符号不是单词。
问题是:
我该如何在Python中检查一个课程名称是否包含符号或元字符,如果包含就返回假,不包含就返回真呢?
-Mark
2 个回答
1
这其实是一个通用的解决方案……只需要把正则表达式换成合适的语法就可以了。
if not re.match(str, r'[\w\d\ ]+'):
# valid
1
re.escape()
是一个Python中的函数,用来处理字符串中的特殊字符。简单来说,它可以把那些在正则表达式中有特殊含义的字符变成普通字符,这样你就可以安全地使用它们了。