• Login
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.
  • A
    attathomeguy
    last edited by Dec 28, 2015, 12:50 AM

    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
    • G
      guy038
      last edited by guy038 Dec 28, 2015, 12:13 PM Dec 28, 2015, 12:03 PM

      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
      • A
        attathomeguy
        last edited by Dec 28, 2015, 7:17 PM

        THANK YOU SO MUCH THAT WORKED GREAT!

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