Python 正则表达式在第一个字节中传递数字

Python 正则表达式在第一个字节中传递数字,python,regex,Python,Regex,我正在尝试检查以确保变量名仅以字母开头,并尝试使用下面的代码执行此操作 但出于某种原因,它失败了 >>> a='1' >>> if re.search(r"/^[a-zA-Z][a-zA-Z0-9_]*$/",a): ... print 'pass' ... else: ... print 'fail' ... fail >>> 我需要确保第一个字母表不是数字,下面的字符只是字母,a-z,0-9和下划线。不要在正则表达式中包

我正在尝试检查以确保变量名仅以字母开头,并尝试使用下面的代码执行此操作

但出于某种原因,它失败了

>>> a='1'
>>> if re.search(r"/^[a-zA-Z][a-zA-Z0-9_]*$/",a):
...     print 'pass'
... else:
...     print 'fail'
...
fail
>>>

我需要确保第一个字母表不是数字,下面的字符只是字母,
a-z
0-9
和下划线

不要在正则表达式中包含这些斜杠。字符串应该只包含要匹配的实际正则表达式。(在Perl中,斜杠用于分隔正则表达式,但在Python中,字符串引号用于分隔它。)正则表达式将永远不会匹配,因为它试图在斜杠之后匹配行的开头(
^
)。

不要在正则表达式中包含这些斜杠。字符串应该只包含要匹配的实际正则表达式。(在Perl中,斜杠用于分隔正则表达式,但在Python中,字符串引号用于分隔它。)您的正则表达式将永远不会匹配,因为它尝试在斜杠之后匹配行的开头(
^
)。

您的示例没有意义,因为根据您的描述,该示例应该失败,因为它不是以字母开头。对,交换通过和失败条件?这个正则表达式将按预期工作:它将匹配以ASCII字母开头的字符串,当第一个字符不是ASCII字母时,将不匹配。这样做不是更好吗?我对字符串进行了完整匹配..ie;检查第1个字节以及其他字节。你看到任何负面影响了吗?你的例子没有意义,因为根据你的描述,这个例子应该失败,因为它不是以字母开头的。对,交换通过和失败条件?这个正则表达式
“^[a-zA-Z][a-zA-Z0-9_Z]*$”
将按预期工作:它将匹配以ASCII字母开头的字符串,当第一个字符不是ASCII字母时,它将不匹配。这样做不是更好吗?我对字符串进行了整体匹配..ie;正在检查第一个字节和其他字节。您是否看到任何缺点?@user1050619:然后更新您的问题以显示当前代码和当前错误。@user1050619:然后更新您的问题以显示当前代码和当前错误。