【发布时间】:2021-10-24 06:51:03
【问题描述】:
我正在练习我的正则表达式技巧,试图在交易中过滤不同于BNB 的“令牌”。
这是一个例子:
原文:
['Sender Receiver Amount Currency',
'0x10ed43c718714eb63d5aa57b78b54704e256024e',
'0x5b9f811d38fc6c1017e0774c552235b33f564deb',
'1.00 WBNB',
'0x10ed43c718714eb63d5aa57b78b54704e256024e',
'0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c',
'1.00 BNB',
'0x5b9f811d38fc6c1017e0774c552235b33f564deb',
'0x6b1ecb203d82fec24f8b684f7906ef98ec9abf0a',
'596.32 RBH',
'0x6b1ecb203d82fec24f8b684f7906ef98ec9abf0a',
'0x10ed43c718714eb63d5aa57b78b54704e256024e',
'1.00 BNB',
'0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c',
'0x10ed43c718714eb63d5aa57b78b54704e256024e',
'1.00 WBNB']
这是我用于尝试的正则表达式:
'(((?<=\d\w ))\w*[^BNB])'
但这是我得到的结果:
[("WBNB'", ''), ("BNB'", ''), ("RBH'", ''), ("BNB'", ''), ("WBNB'", '')]
知道正确的方法来获得我需要的东西吗? (在这种情况下只有“RBH”)
【问题讨论】:
-
[^...]是字符集的否定,即不匹配括号内的任何字符,在这种情况下,它只是意味着匹配不以B或N结尾的东西。跨度> -
长度重要吗?我们是否应该过滤
WWBNB和ABCBNB之类的内容。BNB后面的字符如BNBW和BNBABC和BNB中间的WBNBW怎么样?
标签: python regex regex-negation