Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式在python中不起作用_Python_Regex - Fatal编程技术网

正则表达式在python中不起作用

正则表达式在python中不起作用,python,regex,Python,Regex,为什么这在Python中不起作用 x=re.match('/^([a-z]){3}$/','ssw') 我试图检查长度为3且只有小写字母的字符串。我遗漏了什么吗?请建议。您在python中不使用分隔符 x=re.match('^([a-z]){3}$','ssw') 此外,原始正则表达式字符串始终是一个好习惯: x=re.match(r'^([a-z]){3}$','ssw') 捕获组不太合理。如果只想测试匹配项,请删除它们: x=re.match(r'^[a-z]{3}$','ssw')

为什么这在Python中不起作用

x=re.match('/^([a-z]){3}$/','ssw')

我试图检查长度为3且只有小写字母的字符串。我遗漏了什么吗?请建议。

您在python中不使用分隔符

x=re.match('^([a-z]){3}$','ssw')
此外,原始正则表达式字符串始终是一个好习惯:

x=re.match(r'^([a-z]){3}$','ssw')
捕获组不太合理。如果只想测试匹配项,请删除它们:

x=re.match(r'^[a-z]{3}$','ssw')
如果要捕获所有三个字母,请将量词放入:

x=re.match(r'^([a-z]{3})$','ssw')

因为现在,如果有匹配项,捕获组将只包含最后一个字母。

{3}
放在捕获组中,并删除前斜杠

^([a-z]{3})$
你的代码是

x=re.match(r'^([a-z]{3})$','ssw')
>>> x
<_sre.SRE_Match object at 0x7f13bfdf98a0>
>>> x.group()
'ssw'
x=re.match(r'^([a-z]{3})$,'ssw')
>>>x
>>>十、集团()
“ssw”

仅当输入包含3个小写字母时,它才会捕获输入。

字符“^”和“$”在python中是元字符,因此:

x=re.match('^([a-z]){3}$','ssw')
x.group(0)
如果要匹配“^”和“$”字符,需要对其进行转义:

x=re.match('/\^([a-z]){3}\$/', '/^ssw$/')
x.group(0)

“绘制”正则表达式字符串有什么作用?非常感谢您的帮助。@xander它可以防止一些替换。例如,
r'\ba\b'
将正确匹配字母单词
a
。但是
'\ba\b'
将失败,因为
\b
首先被解释为“反斜杠”字符。