【发布时间】:2017-03-11 06:08:33
【问题描述】:
我一直在努力创建一个正则表达式来区分对象定义和在 Python 中调用该对象。目的是语法高亮。
这是需要解决的情况:(数字表示行)
0 def otherfunc(vars...):
1 pass
2
3 otherfunc(vars...)
我有兴趣匹配对象的名称,但如果在同一行中的任何位置前面有 def,则不会。上面代码的结果应该是:
“其他函数”,第 3 行
正则表达式能做这样的事情吗?
编辑:我只关心一次扫描/搜索一行。
【问题讨论】:
-
是的,在一定程度上......但是如果你希望它在多行字符串等中不匹配,那么它变得更加困难......
-
@AnttiHaapala 我只关心一次扫描一行。我将编辑问题以反映这一点。
-
你如何确定它是否是一个函数?一个类是可调用的,其他一些对象也是如此。您是否在其中包含
lambdas? -
@cdarke 这是一个很好的观点。将其称为函数是不准确的。我将编辑我的问题以反映这一点。
-
真的需要只用正则表达式来实现吗?如果您不熟悉正则表达式,有时可以使用更直接的方法。首先,使用简单的正则表达式搜索您要搜索的内容,然后遍历结果以丢弃您不关心的内容。
标签: python regex syntax-highlighting