2014-02-26 38 views
2

我的Python函数接受任何字符串中的正则表达式,它必须从给定的正则表达式创建一个示例字符串。有没有办法做到这一点?对于前 - 如果提供的正则表达式是r'^\d{5}$',它应该返回'12345'。请建议。从给定的正则表达式创建示例字符串

+0

对我来说真的很难; \ – zhangxaochen

+0

只是提供了一个正则表达式的例子。否则这是复杂的方式。 – phoet

+0

@phoet我开发了一个验证模块,用于验证其格式参数(正则表达式)。我使用正则表达式验证这些参数,如r'^ \ d {5} $',r'^ \ d {3} - \ d {2} - \ d {4} $',r'^ \ D {2} $ '等。假设我得到了一些字符串,必须对r'^ \ d {3} - \ d {2} - \ d {4} $'进行验证,如果验证失败,我必须告诉用户样本格式为123-45-6789。 – gliese581g

回答

0

我知道ZERO了Python,所以我会机翼它的乐趣,因为它的时间学到了一些:

import re 
r = '^\d{3}-\d{2}-\d{4}$' 
k = 0 
ret = '' 
cnt = re.findall('\d', r) 

for i in cnt:   # loop the number of times a digit was found 
    for j in range(i): # loop the number of digits in regex 
     ret += (k += 1) # add digits to return var 
    ret += '-'   # add hypen '-' 
ret = ret[:-1]   # remove last hypen 

我希望我有压痕吧!但这是我第一次尝试python,所以如果这不起作用哦,但你应该明白:

+0

谢谢你的回答。它将适用于给定的正则表达式。但是,如果我改变正则表达式,逻辑必须相应地改变。我可以以某种方式使它通用? – gliese581g