我正在尝试创建以下字符串的python正则表达式:
ABC--2000-01-10X13-11-44.237Z--572b3b7681572b3b7681572b3b7681572b3b7681
这是我管理的:
^ABC\S\S[0-9A-T\S.]{24}\S\S[a-z0-9]{40}$
问题是python一直抱怨缺少反斜杠或r前缀,我在没有运气的情况下尝试了这两个建议。通过用\S
替换-
,我设法使它不再反斜杠,所以正则表达式看起来像这样:
^ABC--[0-9A-T-.]{24}--[a-z0-9]{40}$
但是现在它不再匹配了,我认为是因为标点符号.
吗?我不确定,希望有人愿意帮我解决这个问题。
答案 0 :(得分:0)
将正则表达式指定为原始字符串( r'...'):
pat = re.compile(r'^ABC\S\S[0-9A-T\S.]{24}\S\S[a-z0-9]{40}$')
否则(在“正常”字符串中)反斜杠必须加倍。
(有效)示例代码:
import re
str = 'ABC--2000-01-10X13-11-44.237Z--572b3b7681572b3b7681572b3b7681572b3b7681'
pat = re.compile(r'^ABC\S\S[0-9A-T\S.]{24}\S\S[a-z0-9]{40}$')
print(pat.match(str).group())
答案 1 :(得分:0)
对于您的 SECOND 正则表达式,实际上它不匹配,因为您使用了return int.Parse(lastInsert.Rows[0][0].ToString());
之类的字符范围,但是在给定的输入字符串中,您有一个名为 X的字符,所以我认为您需要将现有的正则表达式(例如,[0-9A-T-.]{24}
修改为A-T
,这样才能与您的字符串完全匹配。
A-Z
REGEX :https://regex101.com/r/fsp3FS/24
Python代码:
^ABC--[0-9A-Z-.]{24}--[a-z0-9]{40}$