带有可选组的Python正则表达式,至少匹配一个

天使

所以我以为我可以用给定的String快速执行re.match(),但是我被卡住了。

具有给定的字符串列表

  • 时间是12H 3M 12S
  • 时间是3M 12S
  • 12H 3M
  • 准备在12S
  • 时间是6H

我想将H,M和S分为3组,

(?:(\ d {1,2})H)?

(?:(\ d {1,2})M)?

(?:(\ d {1,2})S)?

然后,我可以按组(1-3)访问H,M和S组件。我只是想限制匹配以符合条件,即必须触发至少一个optionl组,否则将不匹配。否则,我猜这个表达式可以为空,并且可以匹配所有内容。

这是示例的链接:https : //regex101.com/r/LKAKbx/5

如何仅从匹配项中以组为单位获取数字,例如:

时间是12H 3M 12S

组(1)= 12,组(2)= 3,组(3)= 12

要么

准备在12S

组(1)=无,组(2)=无,组(3)= 12

这个

用积极的前瞻,以确保我们有至少一个HMS

import re

strings = [
    'The Time is 12H 3M 12S',
    'The Time is 3M 12S',
    'It is 12H 3M',
    'Ready in 12S',
    'The Time is 6H',
]

for s in strings:
    res = re.search(r'(?= \d{1,2}[HMS])(?: (\d{1,2})H)?(?: (\d{1,2})M)?(?: (\d{1,2})S)?', s)
    #          here __^^^^^^^^^^^^^^^^^
    print(res.groups())

输出:

('12', '3', '12')
(None, '3', '12')
('12', '3', None)
(None, None, '12')
('6', None, None)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用至少一个空格匹配正则表达式以匹配Unicode字符串

来自分类Dev

正则表达式:单独的可选捕获组,但集体至少必须存在一个

来自分类Dev

Python正则表达式返回最后一个匹配字符的额外捕获组

来自分类Dev

正则表达式:“至少一个捕获必须匹配”

来自分类Dev

一个正则表达式之前或之后具有模式匹配的正则表达式?

来自分类Dev

带可选匹配组的正则表达式

来自分类Dev

具有1的奇数和至少一个0的正则表达式

来自分类Dev

如何在一个正则表达式中捕获所有正则表达式组?

来自分类Dev

正则表达式:将所有内容匹配到一个可选的捕获组

来自分类Dev

带有至少一个连字符的add_rewrite_rules的正则表达式

来自分类Dev

Python正则表达式:仅获取一个匹配的表达式

来自分类Dev

基于第一个条目的正则表达式组匹配

来自分类Dev

正则表达式:每个组都是可选的,必须至少存在一个,之后再允许其他任何组

来自分类Dev

与可选第二组匹配的正则表达式

来自分类Dev

在正则表达式中将单词作为一个组进行匹配

来自分类Dev

正则表达式匹配至少一个大写字母,后跟可选的+/-,并且没有特殊字符

来自分类Dev

是否需要检查正则表达式的匹配长度,以确定是否至少有一个匹配项?

来自分类Dev

检查正则表达式是否与可选组匹配

来自分类Dev

一个简单的正则表达式匹配

来自分类Dev

正则表达式:从字符到行尾的匹配,但没有最后一个匹配组

来自分类Dev

正则表达式查找带有最后一个单词和其余文本的捕获组

来自分类Dev

Javascript正则表达式至少匹配一个字母或数字?

来自分类Dev

正则表达式可选,带有两个匹配的组

来自分类Dev

正则表达式:跳过组中角色的第一个匹配项?

来自分类Dev

正则表达式匹配一个或多个组太多

来自分类Dev

如何使用正则表达式查找带有一些前缀的可选组

来自分类Dev

带有可选捕获组的正则表达式

来自分类Dev

第一个字符出现后的 Python 正则表达式匹配组

来自分类Dev

如何在递归正则表达式中匹配一个组?

Related 相关文章

  1. 1

    用至少一个空格匹配正则表达式以匹配Unicode字符串

  2. 2

    正则表达式:单独的可选捕获组,但集体至少必须存在一个

  3. 3

    Python正则表达式返回最后一个匹配字符的额外捕获组

  4. 4

    正则表达式:“至少一个捕获必须匹配”

  5. 5

    一个正则表达式之前或之后具有模式匹配的正则表达式?

  6. 6

    带可选匹配组的正则表达式

  7. 7

    具有1的奇数和至少一个0的正则表达式

  8. 8

    如何在一个正则表达式中捕获所有正则表达式组?

  9. 9

    正则表达式:将所有内容匹配到一个可选的捕获组

  10. 10

    带有至少一个连字符的add_rewrite_rules的正则表达式

  11. 11

    Python正则表达式:仅获取一个匹配的表达式

  12. 12

    基于第一个条目的正则表达式组匹配

  13. 13

    正则表达式:每个组都是可选的,必须至少存在一个,之后再允许其他任何组

  14. 14

    与可选第二组匹配的正则表达式

  15. 15

    在正则表达式中将单词作为一个组进行匹配

  16. 16

    正则表达式匹配至少一个大写字母,后跟可选的+/-,并且没有特殊字符

  17. 17

    是否需要检查正则表达式的匹配长度,以确定是否至少有一个匹配项?

  18. 18

    检查正则表达式是否与可选组匹配

  19. 19

    一个简单的正则表达式匹配

  20. 20

    正则表达式:从字符到行尾的匹配,但没有最后一个匹配组

  21. 21

    正则表达式查找带有最后一个单词和其余文本的捕获组

  22. 22

    Javascript正则表达式至少匹配一个字母或数字?

  23. 23

    正则表达式可选,带有两个匹配的组

  24. 24

    正则表达式:跳过组中角色的第一个匹配项?

  25. 25

    正则表达式匹配一个或多个组太多

  26. 26

    如何使用正则表达式查找带有一些前缀的可选组

  27. 27

    带有可选捕获组的正则表达式

  28. 28

    第一个字符出现后的 Python 正则表达式匹配组

  29. 29

    如何在递归正则表达式中匹配一个组?

热门标签

归档