Python Regex-以更干净的方式重复捕获组模式
我开始学习正则表达式,我有以下问题。全文如下:Python Regex-以更干净的方式重复捕获组模式,python,regex,Python,Regex,我开始学习正则表达式,我有以下问题。全文如下: 00 0-23/2 * * * ubuntu source /home/ubuntu/virtualenv/ ......... 10 17 8 1,3,6,12 * ubuntu source /home/ubuntu/virtualenv/ ............. 25 6 * * * root test -x /usr/sbin/anacron || ( ..................... 47 6
00 0-23/2 * * * ubuntu source /home/ubuntu/virtualenv/ .........
10 17 8 1,3,6,12 * ubuntu source /home/ubuntu/virtualenv/ .............
25 6 * * * root test -x /usr/sbin/anacron || ( .....................
47 6 * * 7 root test -x /usr/sbin/anacron || ( ......................
52 6 1 * * root test -x /usr/sbin/anacron ||....................
我使用了这个正则表达式和python re
包:
"[\d\*,/-]+\s{1,}[\d\*,/-]+\s{1,}[\d\*,/-]+\s{1,}[\d\*,/-]+\s{1,}[\d\*,/-]+"
它返回每行的前5个数字信息。但是写[\d\*,/-]+
5次是不好的
我尝试了([\d*,/-]+)\s{1,}{5}
,(?([\d*,/-]+)\s{1,}
)或使用(
符号的变体,希望获得感兴趣的捕获组并重复它
我的感觉是,我还没有理解这个符号,或者有另一个合适的语法来解决我想要解决的问题(避免[\d\*,/-]+
重复)
你能帮我吗
谢谢大家! 假设您想要保留捕获的数据,那么您可能只是缺少了一个围绕重复捕获组的捕获组,这样您的正则表达式就可以捕获更多的数据
(([\d*,/-]+\s+){5})
用了这样的话:
import re
inputString = ...
expression = re.compile("(([\d*,/-]+\s+){5})")
matches = expression.findall(inputString)
print(matches)
可能有用的参考资料:
- (我高度推荐,给你一个完整的分类)
(([\d*,/-]+\s+){5})
用了这样的话:
import re
inputString = ...
expression = re.compile("(([\d*,/-]+\s+){5})")
matches = expression.findall(inputString)
print(matches)
可能有用的参考资料:
- (我高度推荐,给你一个完整的分类)
- 也许
(?:[\d\*,/-]+\s+{5}
?谢谢你,尼克!现在我知道我犯了很多错误,但现在我明白了!我试着用(?:),但方法不对。而且,\s+
比\s{1,}
干净得多。真的谢谢你!不用担心-我很高兴这很有用。也许(?:[\d\*,/-]+\s+{5}
?谢谢你,尼克!现在我知道我犯了很多错误,但现在我明白了!我试着用(?:),但方法不对。而且,\s+
比\s{1,}
干净得多。真的谢谢你!不用担心-我很高兴这是有用的。谢谢,伊萨!这个网站,regex101,真的很不错!我喜欢它!你的括号是不平衡的,你错过了星号,为什么你要逃避斜杠和连字符?它们确实,很好的定位。连字符是一个特殊的字符范围,正斜杠,谁知道当时的感觉。谢谢,伊萨!这个网站,regex101,真的很不错!我喜欢它!你的括号是不平衡的,你错过了星号,为什么你要逃避斜杠和连字符?它们确实,很好的定位。连字符是一个特殊的字符范围,正斜杠,谁知道它在当时的感觉。