我发现很难完成这个正则表达式。
以下正则表达式用于检查逗号分隔字符串的有效性:^(\w+)(,\s*\w+)*$
因此,它将匹配以下逗号分隔字符串:
import re
pattern = re.compile(r"^(\w+)(,\s*\w+)*$")
valid_string = "foo, bar, hey,friend, 56, 7, elephant"
pattern.match(valid_string)
然后,我可以使用^(\W+)(,\s*\W+)*$
来处理非字符,该正则表达式将匹配:
import re
pattern = re.compile(r"^(\W+)(,\s*\W+)*$")
valid_string = "%, $, *, $$"
pattern.match(valid_string)
我想创建一个正则表达式,匹配包含特殊字符、连字符和下划线的字符串,例如:
foo-bar, hey_friend, 56-8, 7_88, elephant$n
如何“合并”/w
和/W
来实现这一点?
编辑: 以下是一些无效字符串的示例:
invalid1 = "aa, b, c d e"
这个无效,因为它以空格分隔——必须用逗号分隔。
以下是另一个例子:
invalid2 = "a, ,b, c, d"
这是无效的,因为有两个逗号; 只能有一个。
/w
和/W
不会匹配所有内容吗? - Scott Huntera b, c, d
。 - EB2127