因此,我可以使用负向后搜索来搜索字符串<ANYTHING>.dbo.TableName的所有出现情况,其中<ANYTHING>不是某些特定的字符串。问题在于返回的匹配项未捕获<ANYTHING>子表达式的值。例如,如果我有以下文字:

Test1.dbo.MyTable
Test2.dbo.MyTable
Test123.dbo.MyTable
Test223.dbo.MyTable


我使用以下正则表达式:

(?<!Test1)\.dbo\.MyTable


它确实捕获除第一个事件以外的所有事件,但匹配项仅包含.dbo.MyTable,而不包含被负向后视忽略的先前值。如何捕捉缺失的部分?

最佳答案

您可以在后面加上\w来匹配单词字符,以匹配整个子字符串。

\w+(?<!Test1)\.dbo\.MyTable


Explanation | Live Demo

关于c# - 在仍然返回匹配的子表达式的同时使用负向后看,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26890718/

10-13 08:31