c# - Removing a block of text with regex, matching first occurrences only -


i need remove stored procedure generated script using regex. example, need remove usp_remove:

... go /****** object:  storedprocedure [dbo].[usp_remove] ******/ ... go /****** object:  storedprocedure [dbo].[usp_keep]  ******/ ... go 

i tried following regex:

\/*\*\*\*\*\*\* object:  storedprocedure \[dbo\]\.\[usp_remove\][\s\s]*go 

which selects beginning of text. matches until last "go", , need match until first occurrence of "go" remove stored procedure only. appreciated!

i use lazy matching not overmatch, , use positive look-ahead capture stored procedure:

(?si)/\*{6}\s+object:\s+storedprocedure\s+\[dbo\]\.\[usp_remove\]\s+\*{6}\/.*?(?=go) 

sample code:

var txt = "your_txt"; var rx = new regex(@"/\*{6}\s+object:\s+storedprocedure\s+\[dbo\]\.\[usp_remove\]\s+\*{6}\/.*?(?=go)", regexoptions.singleline | regexoptions.ignorecase); var result = rx.replace(txt, string.empty); 

expresso:

enter image description here


Comments

Popular posts from this blog

shopping cart - Page redirect not working PHP -

php - How to modify a menu to show sub-menus -

python - Installing PyDev in eclipse is failed -