由于字符串中有零个或多个数字,为什么'[0-9] *'在我的Python正则表达式中不匹配'abc'?

安库·阿加瓦尔(Ankur Agarwal)

为什么这个正则表达式:

>>> r = re.compile("[0-9]*", re.DEBUG)

像这样比赛:

>>> m = r.search("abc")
>>> m.group()
''

我希望它可以匹配整个字符串,'abc'因为'a'满足条件即匹配0位数字,然后贪婪的匹配将包括整个字符串'abc'

亨利·基特

您询问“找到零个或多个数字”,因此它找到了零个或多个数字(零;空字符串)。

如果你想“找我零个或多个数字后跟零个或多个其它字符”,你需要的是(与.*模式)。'[0-9]*'与不匹配 'abc',因为'abc'包含了请求的表达式中未包含的字符(字母)。

>>> r = re.compile('[0-9]*.*')  # Note the very important ".*" that matches everything!
>>> r.search('abc').group()
'abc'

关键是“匹配”一词。如果您的表达式不包含某个字符的表示(例如“ a”),则它可能包含该字符的字符串匹配给定的表达式仅匹配由零个或多个数字组成的字符串,别无其他因此,显然不匹配'abc'


正如Tigerhawk在评论中提到的那样,如果*正则表达式的意思是“零个或多个前面的模式,或其他任何东西”,那将是无用的,因为其中带有a的任何模式*将始终匹配所有字符串!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

正则表达式仅接受数字(0-9)和无字符

来自分类Dev

为什么正则表达式“ [\ A] abc”与python中的“ abc”不匹配

来自分类Dev

谁能看到为什么我的python正则表达式搜索仅输出“ 0”?

来自分类Dev

正则表达式用于在字符的任何地方允许两个数字(0-9)

来自分类Dev

如何在Java中编写仅允许数字0-9和#的正则表达式

来自分类Dev

“ 00000000000000000000000000000”匹配正则表达式“ ^ [1-9] | 0 $”

来自分类Dev

Python正则表达式命名组(0或1个匹配项)

来自分类Dev

[A-z0-9] +正则表达式匹配的方括号

来自分类Dev

我有正则表达式将字符串拆分为单词,数字和标点符号列表。如何使“ az”和“ 0-9”成为列表的单个元素?

来自分类Dev

由于字符串中有零个或多个数字,为什么'[0-9] *'在我的Python正则表达式中不匹配'abc'?

来自分类Dev

为什么[0-9] +与sed不匹配“ 123 abc”中的“ 123”?

来自分类Dev

两个正则表达式之间的区别:[abc] +和([abc])+

来自分类Dev

为什么我的正则表达式也接受字母?^ [0-9 \-\ + _]

来自分类Dev

Python正则表达式不匹配字符串中的所有模式

来自分类Dev

为什么正则表达式[^ - ?0-9] '?' +忽略?

来自分类Dev

为什么我的正则表达式不匹配以下数字字符串?

来自分类Dev

Java中字符串`** abc_abc ** abc abc ** abc_abc **的`** abc_abc **`的正则表达式

来自分类Dev

Python中的正则表达式:“ \ d +”和“ [0-9] +”不仅可以识别数字和数字,还可以识别运算符?

来自分类Dev

如何使用正则表达式检查字符串,该字符串包含12个字符且包含0-9a-f?

来自分类Dev

为什么正则表达式^([0 | 1] 1)+ $不匹配字符串“ 111”?

来自分类Dev

JS中“ Abc-123”的正则表达式是什么

来自分类Dev

在Python正则表达式中,为什么我不能多次匹配0或更多

来自分类Dev

为什么正则表达式'[az] [0-9] + $'不起作用

来自分类Dev

为什么我的正则表达式也接受字母?^ [0-9 \-\ + _]

来自分类Dev

正则表达式:/ w表示[a-zA-Z]还是[a-zA-Z0-9_],因为大多数教程都提到\ w-匹配单词字符?

来自分类Dev

需要正则表达式才能完美匹配[a-z0-9]

来自分类Dev

Java - 正则表达式 - 允许 0-9、句点、连字符

来自分类Dev

我想为字符编写正则表达式以从 a-zA-z0-9(从 1 到任何)接受一个来自 . 或者 _

来自分类Dev

包含除 [AZ][az][0-9][\s][-] 以外的任何字符串的正则表达式

Related 相关文章

  1. 1

    正则表达式仅接受数字(0-9)和无字符

  2. 2

    为什么正则表达式“ [\ A] abc”与python中的“ abc”不匹配

  3. 3

    谁能看到为什么我的python正则表达式搜索仅输出“ 0”?

  4. 4

    正则表达式用于在字符的任何地方允许两个数字(0-9)

  5. 5

    如何在Java中编写仅允许数字0-9和#的正则表达式

  6. 6

    “ 00000000000000000000000000000”匹配正则表达式“ ^ [1-9] | 0 $”

  7. 7

    Python正则表达式命名组(0或1个匹配项)

  8. 8

    [A-z0-9] +正则表达式匹配的方括号

  9. 9

    我有正则表达式将字符串拆分为单词,数字和标点符号列表。如何使“ az”和“ 0-9”成为列表的单个元素?

  10. 10

    由于字符串中有零个或多个数字,为什么'[0-9] *'在我的Python正则表达式中不匹配'abc'?

  11. 11

    为什么[0-9] +与sed不匹配“ 123 abc”中的“ 123”?

  12. 12

    两个正则表达式之间的区别:[abc] +和([abc])+

  13. 13

    为什么我的正则表达式也接受字母?^ [0-9 \-\ + _]

  14. 14

    Python正则表达式不匹配字符串中的所有模式

  15. 15

    为什么正则表达式[^ - ?0-9] '?' +忽略?

  16. 16

    为什么我的正则表达式不匹配以下数字字符串?

  17. 17

    Java中字符串`** abc_abc ** abc abc ** abc_abc **的`** abc_abc **`的正则表达式

  18. 18

    Python中的正则表达式:“ \ d +”和“ [0-9] +”不仅可以识别数字和数字,还可以识别运算符?

  19. 19

    如何使用正则表达式检查字符串,该字符串包含12个字符且包含0-9a-f?

  20. 20

    为什么正则表达式^([0 | 1] 1)+ $不匹配字符串“ 111”?

  21. 21

    JS中“ Abc-123”的正则表达式是什么

  22. 22

    在Python正则表达式中,为什么我不能多次匹配0或更多

  23. 23

    为什么正则表达式'[az] [0-9] + $'不起作用

  24. 24

    为什么我的正则表达式也接受字母?^ [0-9 \-\ + _]

  25. 25

    正则表达式:/ w表示[a-zA-Z]还是[a-zA-Z0-9_],因为大多数教程都提到\ w-匹配单词字符?

  26. 26

    需要正则表达式才能完美匹配[a-z0-9]

  27. 27

    Java - 正则表达式 - 允许 0-9、句点、连字符

  28. 28

    我想为字符编写正则表达式以从 a-zA-z0-9(从 1 到任何)接受一个来自 . 或者 _

  29. 29

    包含除 [AZ][az][0-9][\s][-] 以外的任何字符串的正则表达式

热门标签

归档