Community
    • Login

    How to replace a hyphen with some code (which makes the text of the second line come below the text of the first line instead of below the hyphen) using Regex?

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    html
    15 Posts 2 Posters 352 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.
    • Ramanand JhingadeR
      Ramanand Jhingade
      last edited by

      @Terry-R I changed all the hyphens that I wanted to change manually to #@# and searched for (?<!^)(?<! )(#@#)([^<]*)(?=<br>) and replaced it with <table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">#@#</span></td><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">$1</span></td></tr></tbody></table> and it worked but I still think it can be done in one step with the right Regex. I think someone needs to help me find the hyphen/s at the beginning of each line for that

      Ramanand JhingadeR 1 Reply Last reply Reply Quote 0
      • Ramanand JhingadeR
        Ramanand Jhingade @Ramanand Jhingade
        last edited by

        @Ramanand-Jhingade Sorry, I used <table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">#@#</span></td><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">$1$2</span></td></tr></tbody></table> in the replace field - some typo

        1 Reply Last reply Reply Quote 0
        • Terry RT
          Terry R
          last edited by

          @Ramanand-Jhingade said in How to replace a hyphen with some code (which makes the text of the second line come below the text of the first line instead of below the hyphen) using Regex?:

          I think someone needs to help me find the hyphen/s at the beginning of each line for that

          The regex I provided should have done that. If not then it would seem you have additional data not shown which affects the ability to target just those hyphens you want to change.

          So did you try?:
          Find What:^\x20*-([^<])*
          Replace With:<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;"></span></td><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">$1</span></td></tr></tbody></table> because from what I can figure with your latest post that would seem to be the combination of the first replacement and your html code insert.

          Ramanand JhingadeR 2 Replies Last reply Reply Quote 1
          • Ramanand JhingadeR
            Ramanand Jhingade @Terry R
            last edited by

            @Terry-R Your Regex above finds what it needs to perfectly but the replacement needs to improve as it does not add the text before the <br> back

            Ramanand JhingadeR 1 Reply Last reply Reply Quote 0
            • Ramanand JhingadeR
              Ramanand Jhingade @Ramanand Jhingade
              last edited by Ramanand Jhingade

              This post is deleted!
              1 Reply Last reply Reply Quote 1
              • Ramanand JhingadeR
                Ramanand Jhingade @Terry R
                last edited by Ramanand Jhingade

                @Terry-R OK, I used this in the replace field: <table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">-</span></td><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">$0</span></td></tr></tbody></table> and it worked!
                Thanks a lot!
                However, it adds the 4 spaces and the hyphen that were there originally also - any way I can avoid that (but of course, I want the text to be there after the replacement)?

                Terry RT 1 Reply Last reply Reply Quote 0
                • Terry RT
                  Terry R @Ramanand Jhingade
                  last edited by

                  @Ramanand-Jhingade said in How to replace a hyphen with some code (which makes the text of the second line come below the text of the first line instead of below the hyphen) using Regex?:

                  However, it adds the 4 spaces and the hyphen that were there originally also

                  That’s because you have $0 which means all of the found text. Previously you had $1 which is the correct one.

                  Terry

                  Ramanand JhingadeR 3 Replies Last reply Reply Quote 1
                  • Ramanand JhingadeR
                    Ramanand Jhingade @Terry R
                    last edited by

                    @Terry-R $1 was not adding back the text after the replacement which is why I used $0. If there is a way to avoid the 4 spaces and hyphen, as well as add the text after the replacement, please let me know. If that is not possible, please tell me how to find the unwanted hyphen, just before the text that I want - I can find only the wanted hyphen with -[^A-Za-z] due to my limited knowledge of Regex

                    1 Reply Last reply Reply Quote 0
                    • Ramanand JhingadeR
                      Ramanand Jhingade @Terry R
                      last edited by

                      @Terry-R I finally used this Regex in the “Find” field: ^ *-([^<]*) and this in the “Replace” field and it worked perfectly: <table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">-</span></td><td align="left" valign="top"><span style="color: rgb\(0, 0, 0\); font-family: Verdana,sans-serif; font-size: 18px; font-style: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;">$1</span></td></tr></tbody></table>
                      Thanks for your time and help!

                      1 Reply Last reply Reply Quote 0
                      • Ramanand JhingadeR
                        Ramanand Jhingade @Terry R
                        last edited by

                        @Terry-R The second * had to be within the bracket!

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