Python 3.x 只返回正则表达式一次
我试图让正则表达式只打印一次结果。有什么建议吗?因为我希望代码读取整个文本文件,但是有许多日期是相同的,但是我只希望代码只返回一次该日期 代码: 文本文件:Python 3.x 只返回正则表达式一次,python-3.x,regex,Python 3.x,Regex,我试图让正则表达式只打印一次结果。有什么建议吗?因为我希望代码读取整个文本文件,但是有许多日期是相同的,但是我只希望代码只返回一次该日期 代码: 文本文件: No. Time Source Destination Protocol Length Info 2 2021-02-12 13:33:12.206424 192.168.1.151 172.217.
No. Time Source Destination Protocol Length Info
2 2021-02-12 13:33:12.206424 192.168.1.151 172.217.10.46 QUIC 1392 Initial, DCID=e4267bae554f387d, PKN: 1, CRYPTO, PADDING
Frame 2: 1392 bytes on wire (11136 bits), 1392 bytes captured (11136 bits) on interface \Device\NPF_{28AA034F-AC94-4D4A-9CA9-9AEA5D0EF2C1}, id 0
Ethernet II, Src: Micro-St_0e:cd:34 (00:d8:61:0e:cd:34), Dst: Verizon_fb:8b:82 (20:c0:47:fb:8b:82)
Internet Protocol Version 4, Src: 192.168.1.151, Dst: 172.217.10.46
User Datagram Protocol, Src Port: 57189, Dst Port: 443
QUIC IETF
No. Time Source Destination Protocol Length Info
3 2021-02-12 13:33:12.225610 172.217.10.46 192.168.1.151 QUIC 1392 Initial, SCID=e4267bae554f387d, PKN: 1, ACK, CRYPTO, PADDING
Frame 3: 1392 bytes on wire (11136 bits), 1392 bytes captured (11136 bits) on interface \Device\NPF_{28AA034F-AC94-4D4A-9CA9-9AEA5D0EF2C1}, id 0
Ethernet II, Src: Verizon_fb:8b:82 (20:c0:47:fb:8b:82), Dst: Micro-St_0e:cd:34 (00:d8:61:0e:cd:34)
Internet Protocol Version 4, Src: 172.217.10.46, Dst: 192.168.1.151
User Datagram Protocol, Src Port: 443, Dst Port: 57189
QUIC IETF
No. Time Source Destination Protocol Length Info
4 2021-02-12 13:33:12.225989 192.168.1.151 172.217.10.46 TLSv1.2 146 Application Data
No. Time Source Destination Protocol Length Info
4 2021-04-12 13:33:12.225989 192.168.1.151 172.217.10.46 TLSv1.2 146 Application Data
No. Time Source Destination Protocol Length Info
4 2021-06-12 13:33:12.225989 192.168.1.151 172.217.10.46 TLSv1.2 146 Application Data
No. Time Source Destination Protocol Length Info
4 2021-06-12 13:33:12.225989 192.168.1.151 172.217.10.46 TLSv1.2 146 Application Data
代码执行输出:
2021-02-12
2021-02-12
2021-02-12
2021-02-12
2021-02-12
2021-02-12
2021-04-12
2021-06-12
2021-06-12
2021-02-12
2021-04-12
2021-06-12
期望代码执行输出:
2021-02-12
2021-02-12
2021-02-12
2021-02-12
2021-02-12
2021-02-12
2021-04-12
2021-06-12
2021-06-12
2021-02-12
2021-04-12
2021-06-12
下面是一个如何获取文件中所有唯一日期的简单示例 基本上,这是一个4阶段的过程:
re.findall()
获取与模式匹配的所有文本set()
仅保留唯一匹配项重新导入
#制作图案
模式='(\d\d\d-\d\d-\d\d)'
#打开文件并将所有文本读入变量
打开('wireshark.txt')作为文件:
text=file.read()
#在文本中搜索与模式匹配的任何内容
matches=re.findall(模式、文本)
#打印唯一的匹配项
打印(套(匹配))
这里的关键是
re.findall()
(一次搜索多个匹配项)和set()
(以消除重复项。break?我对python不太熟悉我不知道break是什么意思我不知道,但这对我来说可能很有用。然而,我的意思是让正则表达式在整个文本文件中运行,因为文件中有不同的日期,但我不想让同一日期与t一起反复打印还有不同的日期。我编辑了这个问题,这样你就可以看到我所说的mean@duynguyen我现在编辑了我的答案——我想这更符合你的要求。