来自字符串的字节码正则表达式语法

时间:2017-10-10 14:39:02

标签: regex python-3.6

我想我在这里错过了一些简单的东西。这有效:

line = b"hello 001-02-0003 sir"                                         
regex_search1 = re.compile(b"([^0-9_-]|^)\d{3}-\d{2}-\d{4}([^0-9_-]|$)")
line = re.subn(regex_search1, b"\\1XXX-XX-XXXX\\2", line)
print (line)

请注意' b',这一切都很有效。我现在需要从函数中获取正则表达式:

theregex = get_regex_ssn()
regex_search1 = re.compile(theregex)
line = re.subn(regex_search1, b"\\1XXX-XX-XXXX\\2", line)
print (line)

功能get_regex_ssn()我无法控制且无法改变,但它实际上只是上述正则表达式的字符串:

([^0-9_-]|^)\d{3}-\d{2}-\d{4}([^0-9_-]|$) 

所以我得到了可怕的错误:

TypeError: cannot use a string pattern on a bytes-like object

所以我的问题是这个......我现在如何沿着这些方向做点什么?

regex_search1 = re.compile(b,theregex) #clearly isn't the right syntax

0 个答案:

没有答案