【发布时间】:2012-10-28 17:24:51
【问题描述】:
当我使用的代码(r' ', ' '), 更改为a a a a(r' a', a' a'), 时,它应该更改为(r' a', ' '),。有什么更自然的方法来做到这一点?如何使用re.sub 执行此操作?
当前代码,见here
for key, value in newgroupdict.items():
try:
newstr = newstr.replace(re.search(e, line).group(key), value)
except:
pass
例子:
Expression: \s*(?:url)?\(r?["|'](?P<pattern>[^'"]+)["|'],\s*["|']?direct_to_template["|']?,\s*{["|']template["|']:\s*["|'](?P<template>[^'"]+)["|']}\),
String: (r'^$', direct_to_template, {'template': 'home.html'}),
Dictionary: {u'pattern': u'^$abc', u'type': u'direct to template', u'template': u'home.html'}
Output: (r'^$abc', direct_to_template, {'template': 'home.html'}),
Expression: \s*(?:url)?\(r?["|'](?P<pattern>[^'"]+)["|'],\s*["|']?(?P<view>[^'"]+)["|']?\),
String: (r'^urls/', 'urls.views.urls'),
Dictionary: {u'pattern': u'^new_urls_pattern/', u'type': u'view', u'view': u'urls.views.urls'}
Output: (r'^new_urls_patterns/', 'urls.views.urls'),
================= Incorrect Output ========================
Expression: \s*(?:url)?\(r?["|'](?P<pattern>[^'"]+)["|'],\s*["|']?(?P<view>[^'"]+)["|']?\),
String: (r'^urls/', 'urls'),
Dictionary: {u'pattern': u'^new_urls_pattern/', u'type': u'view', u'view': u'urlsxyz'}
Incorrect Output: (r'^urlsxyz/', 'urlsxyz'),
Correct Output: (r'^urls/', 'urlsxyz'),
【问题讨论】:
-
我发现你的问题很不明确。您只给出了一个替换示例,但您的代码会遍历整个替换列表。请向我们提供更多输入/输出对或更全面地描述您要完成的工作。
-
抱歉,谁来读这个?您希望我们帮助您解决问题,因此请努力将问题归结为相关的内容,同时仍然提供足够的示例让我们真正掌握您想要完成的任务。
-
Are You A Movie Director Or Something? 另外,我仍然对预期的效果感到困惑。你能用文字描述一下你想要的替换,或者再举一个例子吗?
-
添加示例和截图