首页 > 解决方案 > Python正则表达式查找3个数字的序列,后跟特定的字符串

问题描述

我有一个正则表达式模式,它匹配由单个逗号和空格分隔的三个数字,但我现在希望该模式在这些数字之后找到“MHz”或“GHz”。

我尝试了一些模式,但没有一个有效

failed_patterns = [r'(\d+\, \d+\, \d+\s*Hz)',
                   r'(\d+\, \d+\, \d+\s*Hz)',
                   r'(\d+\, \d+\, \d+*Hz)']

# basic pattern
pattern = r'(\d+\, \d+\, \d+)'
string = '915, 868, 433 MHz'
re.findall(pattern, string)
# output: ['915, 868, 433']

正则表达式对我来说仍然很新,所以如果有人能让我知道我哪里出错了,以及如何改变我的模式以获得我需要的结果,我将不胜感激

标签: pythonpython-3.xregex

解决方案


此模式适用于您的测试示例:r'(\d{0,3}, \d{0,3}, \d{0,3} [MG]Hz)'


推荐阅读