我想从变量中处理用户输入的正则表达式。很多搜索后,我想出了以下内容:代码变量的如何在python正则表达式中使用变量?
释:
step
是用作输入的正则表达式
例如串
替换| - |空间,
更换| * |空,
替代|/| \ | squot |空间
b is a list
元素。元素是根据正则表达式获取和修改的。
i is integer
从其他功能接收到访问表b利用i作为索引
予处理上面的字符串以获得阵列,然后用数组的最后一个元素作为替换字符串
第一元素被删除因为它不是必需的。 所有其他元素需要替换字符串替换。
def replacer(step,i,b):
steparray = step.split('|')
del steparray[0]
final = steparray.pop()
if final == "space":
subst = u" "
elif final == "squot":
subst = u"'"
elif final == "dquot":
subst = u"\""
else:
subst = u"%s"%final
for input in xrange(0,len(steparray)):
test=steparray[input]
regex = re.compile(ur'%s'%test)
b[i] = re.sub(regex, subst, b[i])
print b[i]
然而,当我运行上面的代码,显示了以下错误:
File "CSV_process.py", line 78, in processor
replacer(step,i,b)
File "CSV_process.py", line 115, in replacer
regex = re.compile(ur'%s'%test)
File "/usr/lib/python2.7/re.py", line 190, in compile
return _compile(pattern, flags)
File "/usr/lib/python2.7/re.py", line 242, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat
我尝试了很多,但不知道如何正则表达式的作品。请帮助错误。
最后一个要求是从用户输入获得一个特殊字符与其他字符(再次从用户输入)
PS替换:此外,代码没有242线,但误差在线242.数组在for循环结束后发生错误吗?
或许''测试''开始于'*'。 – Maroun 2015-02-08 09:31:45
你是以'*'开头的意思?我没有允许'*'作为输入,但b [i]可能包含'*' – AJINKYA 2015-02-08 09:37:13