Python正则表达式从一行中查找时间,年,周和天

维维克·辛格(Vivek Singh)

我的数据如下所示,我需要使用正则表达式捕获时间或年,周,日:

10.174.17.32/29 [20/0] via 10.174.30.129, `18years2weeks3days`, somedata 

10.174.17.32/29 [20/0] via 10.174.30.129, `18y2w3d`, somedata

10.174.17.32/29 [20/0] via 10.174.30.129, `7w0d`, somedata

10.174.17.32/29 [20/0] via 10.174.30.129, `366days`, somedata

10.174.17.32/29 is directly connected, `12:46:02`, somedata

10.174.17.32/29 [20/0] via 10.174.30.129, `00:00:56`, somedata

我用Python编写了此正则表达式:

res = re.compile(r'[0-9]{0,3}[a-zA-Z]{0,5}[0-9]{0,2}[a-zA-Z]{0,5}[0-9]{0,3}[a-zA-Z]{0,4}')

但是此正则表达式也捕获了很多不需要的东西。我只需要用时间,年,周和天来捕捉时间或单词。

如果可以使用两个正则表达式来完成此操作,我将很高兴,如果有一个可以这样做的正则表达式,那就太好了!在我尝试捕获的数据之前或之后,数据的长度可能会有所不同,其中会包含更多不需要的内容。谢谢!!

安德烈·凯斯利(Andrej Kesely)

此正则表达式分析行的年,周,天和时间(regex101):

data = '''

10.174.17.32/29 [20/0] via 10.174.30.129, 18years2weeks3days, somedata

10.174.17.32/29 [20/0] via 10.174.30.129, 18y2w3d, somedata

10.174.17.32/29 [20/0] via 10.174.30.129, 7w0d, somedata

10.174.17.32/29 [20/0] via 10.174.30.129, 366days, somedata

10.174.17.32/29 is directly connected, 12:46:02, somedata

10.174.17.32/29 [20/0] via 10.174.30.129, 00:00:56, somedata'''

import re

print('{:^15} {:^15} {:^15} {:^15}'.format('Years', 'Weeks', 'Days', 'Time'))
for years, weeks, days, time in re.findall(r'(?:(\d+)y(?:ears?)?)?(?:(\d+)w(?:eeks?)?)?(\d+)d(?:ays?)?|(\d+:\d+:\d+)', data):
    print('{:^15} {:^15} {:^15} {:^15}'.format(years, weeks, days, time))

印刷品:

 Years           Weeks           Days            Time      
  18               2               3                       
  18               2               3                       
                   7               0                       
                                  366                      
                                               12:46:02    
                                               00:00:56    

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBScript正则表达式从一行字符串中查找域名

来自分类Dev

正则表达式查找时间戳后的最后一个冒号

来自分类Dev

正则表达式从一行中获取匹配的单词

来自分类Dev

使用正则表达式在数据框中查找一行

来自分类Dev

一行中的多个正则表达式

来自分类Dev

查找和替换中的python正则表达式

来自分类Dev

Python正则表达式:在一行而不是列表中返回匹配项?

来自分类Dev

正则表达式从一行中提取时分秒

来自分类Dev

正则表达式从一行中提取时分秒

来自分类Dev

正则表达式模式 - 如何从一行中提取 N 个元素?

来自分类Dev

多行查找和替换-Notepad ++,正则表达式,从特定行复制文本并在另一行中替换

来自分类Dev

正则表达式模式可在字符串的每一行中查找整数

来自分类Dev

使用正则表达式在同一行上查找多个匹配项

来自分类Dev

查找所有不同的正则表达式结果,而不是全部一行

来自分类Dev

Notepad ++正则表达式查找线条图案,但仅替换一行

来自分类Dev

正则表达式 - 使用正则表达式从 python 列表中删除日期和时间

来自分类Dev

使用崇高的文字和正则表达式匹配一行中的第一个空格

来自分类Dev

制作一行正则表达式

来自分类Dev

正则表达式匹配每一行

来自分类Dev

使用正则表达式删除一行

来自分类Dev

使用正则表达式从哈希集中抓取行和上一行

来自分类Dev

Notepad ++查找和删除行的正则表达式

来自分类Dev

SSRS表达式-从周值中查找一周的第一天

来自分类Dev

SSRS表达式-从周值中查找一周的第一天

来自分类Dev

python readfile和基于匹配下的另一行值匹配正则表达式

来自分类Dev

如何使用正则表达式和vi替换每一行中重复的单词字符串?

来自分类Dev

Python中“月年”的正则表达式

来自分类Dev

基于前一行的正则表达式换行\ r和\ t吗?

来自分类Dev

查找和正则表达式

Related 相关文章

  1. 1

    VBScript正则表达式从一行字符串中查找域名

  2. 2

    正则表达式查找时间戳后的最后一个冒号

  3. 3

    正则表达式从一行中获取匹配的单词

  4. 4

    使用正则表达式在数据框中查找一行

  5. 5

    一行中的多个正则表达式

  6. 6

    查找和替换中的python正则表达式

  7. 7

    Python正则表达式:在一行而不是列表中返回匹配项?

  8. 8

    正则表达式从一行中提取时分秒

  9. 9

    正则表达式从一行中提取时分秒

  10. 10

    正则表达式模式 - 如何从一行中提取 N 个元素?

  11. 11

    多行查找和替换-Notepad ++,正则表达式,从特定行复制文本并在另一行中替换

  12. 12

    正则表达式模式可在字符串的每一行中查找整数

  13. 13

    使用正则表达式在同一行上查找多个匹配项

  14. 14

    查找所有不同的正则表达式结果,而不是全部一行

  15. 15

    Notepad ++正则表达式查找线条图案,但仅替换一行

  16. 16

    正则表达式 - 使用正则表达式从 python 列表中删除日期和时间

  17. 17

    使用崇高的文字和正则表达式匹配一行中的第一个空格

  18. 18

    制作一行正则表达式

  19. 19

    正则表达式匹配每一行

  20. 20

    使用正则表达式删除一行

  21. 21

    使用正则表达式从哈希集中抓取行和上一行

  22. 22

    Notepad ++查找和删除行的正则表达式

  23. 23

    SSRS表达式-从周值中查找一周的第一天

  24. 24

    SSRS表达式-从周值中查找一周的第一天

  25. 25

    python readfile和基于匹配下的另一行值匹配正则表达式

  26. 26

    如何使用正则表达式和vi替换每一行中重复的单词字符串?

  27. 27

    Python中“月年”的正则表达式

  28. 28

    基于前一行的正则表达式换行\ r和\ t吗?

  29. 29

    查找和正则表达式

热门标签

归档