Python正则表达式[\d+;]
我正在研究正则表达式python,我遇到了这个问题 有效的手机号码是以7、8或9开头的10位数字。 我的解决办法是:Python正则表达式[\d+;],python,regex,Python,Regex,我正在研究正则表达式python,我遇到了这个问题 有效的手机号码是以7、8或9开头的10位数字。 我的解决办法是: if len(x)==10 and re.search(r'^[7|8|9]+[\d+]$',x): 这是我的错误。后来我把它改成了 if len(x)==10 and re.search(r'^[7|8|9]+\d+$',x): 所有测试用例都通过了。我想知道在正则表达式中对\d+使用和不使用[]有什么区别 谢谢[\d+]=一位数(0-9)或+字符 \d+=一个或多个数字。
if len(x)==10 and re.search(r'^[7|8|9]+[\d+]$',x):
这是我的错误。后来我把它改成了
if len(x)==10 and re.search(r'^[7|8|9]+\d+$',x):
所有测试用例都通过了。我想知道在正则表达式中对\d+
使用和不使用[]
有什么区别
谢谢
[\d+]
=一位数(0-9
)或+
字符
\d+
=一个或多个数字。您还可以执行以下操作:
if re.search(r'^[789]\d{9}$', x):
让正则表达式通过使用显式长度而不是无界重复来处理
len(x)==10
部分。我认为您需要一个关于[]
和+
的一般解释
[]
将与内部指定的单个字符匹配。例如:
[qwe]
将与q
、w
或e
匹配
如果要在[]
中输入表达式,则需要将其用作[^expression]
+
将与前面的元素匹配一次或多次。
例如:qw+e
匹配qwe
,qwwe
,qwwe
,等等
注意:这与*
不同,因为*
与前面的元素零次或多次匹配。i、 e.qw*e
也与qe
匹配
\d
与数字匹配。(不仅仅是0-9
,还有其他语言脚本中的数字。)我不知道复杂性,但这也是可行的:
if (len(x)==10 and "789"==x[1:4]):
[\d]+
应该是正确的,[\d+]
表示一个数字或加号字符。还要从character类中删除|
s,因为它们仅被视为literal|
我认为您需要阅读regexp教程。您似乎正在使用[]
来查找内部的单个字符。例如:[abc]
查找a
、b
或c
。转义序列在[]
内部工作,因此它是一个数字或+
。