我需要python中正则表达式的帮助:
我在目录中有四个文件
这是我在python中的正则表达式:
/.*(S[0-9]{2})E[0-9]{2}.*|.*([0-9]+)X[0-9]+.*/
然后它返回:
匹配1
- 无
- 5
醇>匹配2
- 无
- 3
醇>匹配3
- 无
- 9
醇>匹配4
- S02
- 无
醇>
在第2.2场比赛中,我有3而不是13.我怎么能得到后者呢?有什么想法吗?
我试过这个,但根本不起作用:
/.*(S[0-9]{2})E[0-9]{2}.*|.*([0-9]{1,2})X[0-9]{1,2}.*/
感谢。
答案 0 :(得分:0)
通过添加.*
来尝试在与13
懒惰匹配的位之前设置?
:
/.*(S[0-9]{2})E[0-9]{2}.*|.*?([0-9]{1,2})X[0-9]{1,2}.*/
答案 1 :(得分:0)
正则表达式的第二部分没有标记捕获组开头的字母。您需要在第一个数字之前使用非贪婪的.*?
匹配器而不是贪婪版本.*
:
.*(S\d{2})E\d{2}.*|.*?(\d+)X\d+.*
输出:
Match 1
1. None
2. 5
Match 2
1. None
2. 13
Match 3
1. None
2. 9
Match 4
1. S02
2. None