我需要在一堆文件中搜索包含“tblPayment”或“tblInvoice”的任何内容
我还想匹配任何名为“tblPaymentMethod”,“tblInvoiceItem”,“tblInvoicePayment”的表
有人关心如何为此编写正则表达式?
再次感谢!
答案 0 :(得分:4)
tbl(Invoice|Payment)+
如果您需要这种灵活性,这也将匹配没有表前缀的表。
编辑:有多种方法可以明确地执行此操作(例如tblInvoice|tblPayment|...
),但每次添加要匹配的新表时,都必须修改RegEx。这可能就是你想要的,但我想让你更灵活一点,不必经常编辑。
答案 1 :(得分:0)
你需要这个正则表达式。
tblPayment|tblInvoice|tblPaymentMethod|tblInvoiceItem|tblInvoicePayment
实施将取决于您正在实施的语言。
答案 2 :(得分:0)
tbl(Payment(Method)?|Invoice(Item|Payment)?)
是最短的,但可能比简单地用字符串列表进行文字文本比较更难维护。
答案 3 :(得分:0)
在Perl RE语法中:
/tbl
((Payment(Method)?)
|
(Invoice(Item|Payment)?))
/x
将符合您的要求。
答案 4 :(得分:0)
在python中你可以使用这样的东西: “TBL(发票|付款)?+”
答案 5 :(得分:0)
如果你想匹配任何以tblInvoice或tblPayment开头的表名,那么这样就可以了:
tbl(?:Invoice|Payment)\w*
(?:Invoice | Payment)是一个非捕获组(在这种情况下比捕获组更有效)。然后\ w *将可选地匹配紧随其后的字母数字字符。