我有一个字符串,它是一个文件名,例如:
'20220213-0000-FSC-814-SC_VIRG_REFBAL_PRES_NPMINMAX-v1.xml'
'20220213-0000-F814-SC_VIRG_REFBAL_PRES_NPMINMAX-v1.xml'
我想找到一个具有search的字符串,对应于Fddd
或FSC-ddd
。
我有一个这样的正则表达式:
type_match = re.search(r'(F(d{3}))|(FSC-(d{3}))', string)
之后,我发现例如FSC-814
,我想从这个找到的字符串中只得到数字,我使用:
int(type_match.group(1))
,但它不工作后,我包括或声明在re.search
可以使用
F(?:SC)?-?(d{3})
参见regex演示。
细节:
F
- andF
char(?:SC)?
-可选的SC
字符序列-?
-可选连字符(d{3})
-捕获组1:三位。
查看Python演示:
import re
texts = ['20220213-0000-FSC-814-SC_VIRG_REFBAL_PRES_NPMINMAX-v1.xml',
'20220213-0000-F814-SC_VIRG_REFBAL_PRES_NPMINMAX-v1.xml']
pattern = r'F(?:SC)?-?(d{3})'
for text in texts:
match = re.search(pattern, text)
if match:
print (match.group(1))
输出:
814
814