Community
    • Login

    How to write a find ane replace experssion

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    3 Posts 2 Posters 3.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • attathomeguyA
      attathomeguy
      last edited by

      I am trying to add back some formatting removed by a stupid program and I thought I could write a search and replace expression to make all the text in the rest of the file look like the first 2 lines where there would be a CR break after the first number in one huge line of text. Any ideas?

      17:30:19:>>> WELCOME TO TEMPE, ARIZONA,
      17:30:22:THE WELLS FARGO ARENA, HOME OF
      17:30:24:THE SUN DEVILS OF ARIZONA STATE17:30:26:UNIVERSITY.17:30:27:ASU GETTING SET TO TAKE ON17:30:29:KENNESAW STATE.17:30:30:PART OF THE LEGENDS

      1 Reply Last reply Reply Quote 0
      • guy038G
        guy038
        last edited by guy038

        Hello attathomeguy,

        Easy enough, with regular expressions :-))

        • Open the Replace dialog ( CTRL + H )

        • SEARCH .(?=\d\d:\d\d:\d\d:)

        • REPLACE $0\r\n

        • Check the Regular expression search mode

        • Leave the . matches newline option UNchecked

        • if necessary, check the Wrap around option

        • Click on the Replace All button

        Et voilà !

        Notes :

        • The dot ( . ) represents any standard character ( different from \r, \n and \f )

        • The syntax (?=\d\d:\d\d:\d\d:) is called a look-ahead, that looks, after the dot, for 3 sets of two digits, each of them followed with a colon. However, although this condition must be true, it’s NEVER part of the regex to be replaced. Therefore, the search regex is, only, the character just before the time syntax HH:MM:SS.

        • The $0, in the replacement part, represents the entire regex matched, that is to say, the dot, which must be separated, from the HH:MM:SS form, with a line break ( \r\n ). If you use UNIX files, just change \r\n into \n.

        So, the last line of your post :

        17:30:24:THE SUN DEVILS OF ARIZONA STATE17:30:26:UNIVERSITY.17:30:27:ASU GETTING SET TO TAKE ON17:30:29:KENNESAW STATE.17:30:30:PART OF THE LEGENDS
        

        will be replaced by the five lines below :

        17:30:24:THE SUN DEVILS OF ARIZONA STATE
        17:30:26:UNIVERSITY.
        17:30:27:ASU GETTING SET TO TAKE ON
        17:30:29:KENNESAW STATE.
        17:30:30:PART OF THE LEGENDS
        

        Best Regards,

        guy038

        P.S. :

        You’ll find good documentation, about the new Boost C++ Regex library ( similar to the PERL Regular Common Expressions ) used by Notepad++, since the 6.0 version, at the TWO addresses below :

        http://www.boost.org/doc/libs/1_48_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html

        http://www.boost.org/doc/libs/1_48_0/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html

        • The FIRST link explains the syntax, of regular expressions, in the SEARCH part

        • The SECOND link explains the syntax, of regular expressions, in the REPLACEMENT part

        1 Reply Last reply Reply Quote 0
        • attathomeguyA
          attathomeguy
          last edited by

          THANK YOU SO MUCH THAT WORKED GREAT!

          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          The Community of users of the Notepad++ text editor.
          Powered by NodeBB | Contributors