drgmak
drgmak

Reputation: 1215

Replace regex Match with other value

I have a query like this:

select * from tdirectories where tdirectories.parent in 
( 
    select max(tdirectories.directoryid) from tdirectories 
    where tdirectories.ntfsdrivedocuid in 
    ( 
        select ntfsdrivedocuid from tntfsdrives, tntfsdrivedocu 
        where tntfsdrivedocu.ntfsdriveid = tntfsdrives.ntfsdriveid and tntfsdrives.hostid in 
        (
            select tdocu.hostid from tdocu, tshares 
            here tdocu.docuid = tshares.docuid 
            and tdocu.archiv = 0 
        )
        and tntfsdrivedocu.archiv = 0 
    )
    and tdirectories.pathhash  in (select tshares.pathhash from tshares   ) 
)  

What I want to do is that by using RegEx I want to find this part:

select max(tdirectories.directoryid) 

Inside the max can be any value. I want to find it and remove, as result i will have

select tdirectories.directoryid

The regex I have created looks like this:

Regex rgx = new Regex("(select\\s.+select)\\smax\\s*\\((?<VAR>[^)]+)\\)");

But this does not solve my issue. What am i missing?

Upvotes: 1

Views: 77

Answers (1)

Jan
Jan

Reputation: 43169

You could go for (in free mode):

select       # select literally
\            # a space
max          # max literally
\(([^)]+)\)  # capture anything inside the parentheses

And use the first group ($1), see a demo on regex101.com.

Upvotes: 2

Related Questions