Python中文
首页
教程
问答
标签
搜索
登录
注册
我在一个效率低下的mann中使用Python正则表达式
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我的目标是创建一个非常简单的模板语言。目前,我正在用一个值替换一个变量,如下所示:</p> <p>此输入:</p> <blockquote> The Web </blockquote> <p>应产生以下输出:</p> <blockquote> <p>The Web This Is A Test Variable</p> </blockquote> <p>我已经成功了。但是看看我的代码,我在同一个字符串上运行多个相同的正则表达式——这违反了我的效率感。一定有更好的,更像Python的方式。(这两个“while”循环才是真正的冒犯。)</p> <p>这确实通过了单元测试,所以如果这是愚蠢的过早优化,告诉我——我愿意让它过去。一个文档中可能有几十个这样的变量定义和用法,但不是数百个。但我怀疑有明显的(对其他人来说)改进的方法,我很好奇StackOverflow的人群会想出什么样的方法。在</p> <pre><code>def stripMatchedQuotes(item): MatchedSingleQuotes = re.compile(r"'(.*)'", re.LOCALE) MatchedDoubleQuotes = re.compile(r'"(.*)"', re.LOCALE) item = MatchedSingleQuotes.sub(r'\1', item, 1) item = MatchedDoubleQuotes.sub(r'\1', item, 1) return item def processVariables(item): VariableDefinition = re.compile(r'<%(.*?)=(.*?)%>', re.LOCALE) VariableUse = re.compile(r'<%(.*?)%>', re.LOCALE) Variables={} while VariableDefinition.search(item): VarName, VarDef = VariableDefinition.search(item).groups() VarName = stripMatchedQuotes(VarName).upper().strip() VarDef = stripMatchedQuotes(VarDef.strip()) Variables[VarName] = VarDef item = VariableDefinition.sub('', item, 1) while VariableUse.search(item): VarName = stripMatchedQuotes(VariableUse.search(item).group(1).upper()).strip() item = VariableUse.sub(Variables[VarName], item, 1) return item </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>永远不要创建自己的编程语言。永远。(我以前对这个规则有一个例外,但现在不是了。)</p> <p>总有一种现有的语言可以更好地满足你的需要。如果你详细描述了你的用例,人们可能会帮助你选择一种合适的语言。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
10 回答
如何添加表示整数的擦边字符串?
7 回答
如何添加要在Bokeh中使用的新font.ttf文件?
2 回答
如何添加要显示的矩阵XY轴编号和XY轴
10 回答
如何添加计数?
4 回答
如何添加计数器函数?
5 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
6 回答
如何添加计数器来跟踪while循环中的月份和年份?
6 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
6 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
4 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
7 回答
如何添加评论拉梅尔亚姆
2 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
1 回答
如何添加谷歌地点自动完成到Flask?
10 回答
如何添加超时、python discord bot
5 回答
如何添加超过1dp的检查
7 回答
如何添加距离方法
8 回答
如何添加跟随游戏的敌人精灵
3 回答
如何添加路径以便python可以找到程序?
8 回答
如何添加身份验证/安全性以使用happybase访问HBase?
1 回答