-2
我發現了一些關於正則表達式的問題,但我似乎無法完成這項工作。我想在我的模式中包含特定字符串的排除。我的用例是查找python文件中的所有行,這些行定義了具有object
以外的超類的類。所以舉例如下:grep:匹配除字外的所有內容
class Class1(Superclass): #match
class Class2(othersuperclass, Superclass): #match
class Class3(object): #no match
我可以使用下面的正則表達式來匹配定義類的行。我敢肯定,這不是最佳,但它是我已經和它的工作原理:
grep -n '^[[:space:]]*class[[:space:]][[:space:]]*[[:alpha:]][[:alnum:]]*[[:space:]]*(.*):' *
但我無法弄清楚如何排除有括號內的「對象」行。
編輯:我應該更清楚。我試圖在我的文件系統中遞歸搜索文件。目前我從命令行使用grep
,但如果有更好的命令行實用程序,我很高興聽到它。
我通常使用'grep -v'來排除匹配模式的行。所以,例如'grep ... | grep -v對象'。 – dsh
爲什麼不使用ast和os.walk? –
@PadraicCunningham見編輯 – ewok