首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式过滤MAC地址

正则表达式过滤MAC地址
EN

Stack Overflow用户
提问于 2021-12-08 16:35:41
回答 3查看 230关注 0票数 -1

以下格式的正则表达式(XXXXXXG0-XXXX-XXXX-1923-785FEABCD 128)是用来过滤MAC地址的,所以我需要那些具有上述格式和长度定义字符的MAC地址。

是否可以为上述格式编写regexp?X字符可以是字母数字。但其他非X字符应该是相同的。

代码语言:javascript
复制
ABCDEFG0-GHYD-SDER-1923-785FEABCD128 - Valid

ABCDEFH0-GHYD-SDER-0923-995FEABCD120 - Invalid

ABCDEFG0-GHYD-SDER-0923-995FEABCD120 - Invalid
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-08 16:44:38

代码语言:javascript
复制
^[a-zA-Z0-9]{6}G0-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-1923-785FEABCD128$

解释:

^匹配字符串的开头

[a-zA-Z0-9]{6}与任何字母数字字符匹配6次。

G0-与文本完全匹配。

[a-zA-Z0-9]{4}-任何字母数字字符4次后接连字符(出现两次)

1923-785FEABCD128与文本完全匹配。

$与字符串的末尾匹配。

票数 1
EN

Stack Overflow用户

发布于 2021-12-08 16:45:16

代码语言:javascript
复制
import re

patt = re.compile('[A-Z0-9]{6}G0-[A-Z0-9]{4}-[A-Z0-9]{4}-1923-785FEABCD128')

for test in ['ABCDEFG0-GHYD-SDER-1923-785FEABCD128', 'ABCDEFH0-GHYD-SDER-0923-995FEABCD120', 'ABCDEFG0-GHYD-SDER-0923-995FEABCD120']:
    if patt.match(test):
        print(f'{test} - Valid')
    else:
        print(f'{test} - Invalid')

版画

代码语言:javascript
复制
ABCDEFG0-GHYD-SDER-1923-785FEABCD128 - Valid
ABCDEFH0-GHYD-SDER-0923-995FEABCD120 - Invalid
ABCDEFG0-GHYD-SDER-0923-995FEABCD120 - Invalid
票数 1
EN

Stack Overflow用户

发布于 2021-12-13 21:04:43

为了字符串匹配而不是正则表达式,可以使用以下解决方案:

代码语言:javascript
复制
mac_addresses = [
    'ABCDEFG0-GHYD-SDER-1923-785FEABCD128',
    'ABCDEFH0-GHYD-SDER-0923-995FEABCD120',
    'ABCDEFG0-GHYD-SDER-0923-995FEABCD120'
]

for address in mac_addresses:
    # splits 3 times, leaving the last two groups together
    # for easier string matching
    first, *_, last = address.split('-', 3)
   
    if first.endswith('G0') and last == '1923-785FEABCD128':
        match = 'Valid'
    else:
        match = 'Invalid'

    print(f"{address} - {match}")

哪种指纹

代码语言:javascript
复制
ABCDEFG0-GHYD-SDER-1923-785FEABCD128 - Valid
ABCDEFH0-GHYD-SDER-0923-995FEABCD120 - Invalid
ABCDEFG0-GHYD-SDER-0923-995FEABCD120 - Invalid

这里的救济金?如果需要更改条件或添加新条件,则不需要修改/跟上正则表达式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70278548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档