RegEx selective replace



  • Hi

    I’m hoping someone can help as I’ve been struggling with this all day!

    I have some text files that I want to do some search/replace on but I can’t work out how to reference selectively what I’m trying to replace.

    Taking this as the test:

    IF Thirty THEN
    DRAW("               Twenty, Thirty, Forty, Fifty")
    ENDIF
    

    I would like to replace the Thirty on line that includes DRAW with ‘30’ but not on the IF line. How can I do this please.

    I’m tearing my hair out!

    Many thanks

    Rob



  • @Forum-Bloke ,

    • FIND WHAT = (?-s)(DRAW.*)Thirty
    • REPLACE WITH = $1Replacement
    • MODE = regular expression

    Requires DRAW to come before the Thirty, on the same line.

    • (?-s) = dot wildcard does not match space
    • (DRAW.*) = literal text DRAW followed by 0 or more characters (.*), all put into group#1
    • Thirty = literal text you want to replace
    • $1 = in the replacement, this will include the contents of group#1, which is everything from DRAW (including the DRAW) to just before the Thirty
    • Replacement = the word you want to insert instead of Thirty

    ----
    Official Notepad++ Searching/Regex Docs = https://npp-user-manual.org/docs/searching/#regular-expressions



  • @PeterJones said in RegEx selective replace:

    (?-s)(DRAW.*)Thirty

    Many thanks!


Log in to reply