Community
    • Login

    Search++ (\W)'(\w) regex replace failure

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    32 Posts 5 Posters 1.0k Views 1 Watching
    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.
    • M Andre Z EckenrodeM Offline
      M Andre Z Eckenrode @Coises
      last edited by M Andre Z Eckenrode

      @Coises

      On the outside chance that specifics of the variants of my regex replacement anomalies are useful, here is some detailed information about them and the circumstances of their appearance… I started with an unsaved ANSI text tab/buffer with:

      Search++ Regex
      
      (\W)'(\w)
      \1’\2
      
      this
      'Cos I am
      that
      
      this
      'Round and 'round
      that
      
      ------------------------------------------------------------------
      
      

      … and the example text (this[CRLF]'Cos to 'round[CRLF]that followed by [blank line]/[dashed line]/[blank line]) repeated 9 times below (total of 10 times). The anomalies occurred on the following lines during this first experiment:

      Line 27:
      -’-os I am

      Lines 51–52:
      ’Round and
      ’hound

      Lines 62–63:
      a’
      ound and ’round

      Second experiment:

      Line 11:
      -’-ound and ’round

      Line 27:
      -’-os I am

      Line 57:
      -’-os I am

      Lines 87–88:
      [blank line]
      ’tos I am

      Third experiment:

      Line 10:
      this-’-ound and ’round

      Line 16:
      -’-os I am

      Line 40:
      -’-ound and ’round

      Line 60:
      ’Round and-’-ound

      Line 90:
      ’Round and-’-ound

      CoisesC 2 Replies Last reply Reply Quote 1
      • CoisesC Offline
        Coises @M Andre Z Eckenrode
        last edited by

        @M-Andre-Z-Eckenrode said:

        here is some detailed information

        Thank you. At this point I am still stumped as to how to find this needle in a haystack. Any information could turn out to be helpful. I appreciate your perseverance.

        1 Reply Last reply Reply Quote 0
        • CoisesC Offline
          Coises @M Andre Z Eckenrode
          last edited by

          @M-Andre-Z-Eckenrode:

          Have you ever noticed arbitrary junk character replacements with any other regular expression / replacement pairs, or only with this particular one?

          M Andre Z EckenrodeM 2 Replies Last reply Reply Quote 0
          • M Andre Z EckenrodeM Offline
            M Andre Z Eckenrode @Coises
            last edited by

            @Coises said:

            Have you ever noticed arbitrary junk character replacements with any other regular expression / replacement pairs, or only with this particular one?

            I haven’t actually tried any others with Search++, so far. The vast majority of my regex operations are accomplished via PythonScript, and I only very infrequently need to perform a standalone regex. But I’ll keep Search++ in mind if/when another one becomes necessary.

            1 Reply Last reply Reply Quote 1
            • mpheathM Offline
              mpheath @M Andre Z Eckenrode
              last edited by mpheath

              @M-Andre-Z-Eckenrode I may not fully understand the regex task with using groups when ' can be at the start of a line with a word character following as to \W can match the preceding LineFeed character. The LineFeed character seems unwise to capture in my opinion. \W can change behavior depending on encoding so might be challenging to use so perhaps if can be avoided, then that might be better.

              The find pattern of \B'\b and replace with ’ might be safer to use as to using anchors to qualify the match instead of consuming with groups which may need more complex conditional handling.

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

                Hello, @m-andre-z-eckenrode, @coises, @mpheath and All,

                @mpheath, you said :

                The find pattern of \B'\b and replace with ’ might be safer to use as to using anchors to qualify the match instead of consuming with groups which may need more complex conditional handling.

                I totally agree with this statement !

                That is why I proposed, in my initial post, this alternate formulation :

                FIND (?<=\W)'(?=\w)

                REPLACE ’

                which do not contain any group !


                Indeed, the \B'\b and (?<=\W)'(?=\w) Find regexes are equivalent and a Replace All operation would change this INPUT text, below :

                
                't'e's't' 't'o' 's'e'e' 't'h'e' 'm'a't'c'h'e's'
                
                

                By this one :

                
                ’t'e's't' ’t'o' ’s'e'e' ’t'h'e' ’m'a't'c'h'e's'
                
                

                In other words, any single quote char, preceded by a non-word char and followed with a word char, is changed into the ’ character ( \x{2019} RIGHT SINGLE QUOTATION MARK )

                Best Regards,

                guy038

                M Andre Z EckenrodeM 1 Reply Last reply Reply Quote 1
                • M Andre Z EckenrodeM Offline
                  M Andre Z Eckenrode @guy038
                  last edited by

                  @mpheath & @guy038

                  Thanks much for the suggestions, though as stated in my other similar topic, which isn’t specific to Search++, I already found and used a working alternate method to achieve what I wanted, and only really started that topic to try to understand why the (\W)'(\w) method did NOT work, while THIS topic is only really to report the aberrant replacements seemingly caused by Search++.

                  1 Reply Last reply Reply Quote 0
                  • M Andre Z EckenrodeM Offline
                    M Andre Z Eckenrode @Coises
                    last edited by

                    @Coises

                    For what it’s worth, I asked my brother, whom I know also uses Notepad++, to indulge me by repeating my Search++ regex experiments on his own computer, and he kindly did so after encountering some initial problems getting Search++ to work at all (see below for details of that). Anyway, he used a fresh portable copy with the latest versions of both, as I have, and reports getting one anomalous replacement while stepping through a text field made up of 11 copies of my recently reported example text. I think that duplicating the problem almost invariably requires many matches and replacement attempts, since it’s so hit or miss for whatever reason.

                    About my brother’s initial failures to get Search++ to load in his portable copy: His first four or so tries were attempted in different virtual machines on his computer, including the very first one being Windows 11’s built-in “Sandbox”. All of them failed with messages such as “The specified module could not be found” and “Search++.dll is not compatible with the current version of Notepad++”. But when he tried the same set of files on his real machine, it worked. He routinely runs various other programs in virtual machines just fine.

                    CoisesC 1 Reply Last reply Reply Quote 1
                    • CoisesC Offline
                      Coises @M Andre Z Eckenrode
                      last edited by

                      @M-Andre-Z-Eckenrode said:
                      For what it’s worth, I asked my brother, whom I know also uses Notepad++, to indulge me by repeating my Search++ regex experiments on his own computer, and he kindly did so after encountering some initial problems getting Search++ to work at all (see below for details of that). Anyway, he used a fresh portable copy with the latest versions of both, as I have, and reports getting one anomalous replacement while stepping through a text field made up of 11 copies of my recently reported example text. I think that duplicating the problem almost invariably requires many matches and replacement attempts, since it’s so hit or miss for whatever reason.

                      Thank you, and thanks to your brother!

                      Is he also using 32-bit Notepad++?

                      About my brother’s initial failures to get Search++ to load in his portable copy: His first four or so tries were attempted in different virtual machines on his computer, including the very first one being Windows 11’s built-in “Sandbox”. All of them failed with messages such as “The specified module could not be found” and “Search++.dll is not compatible with the current version of Notepad++”. But when he tried the same set of files on his real machine, it worked. He routinely runs various other programs in virtual machines just fine.

                      I just tried the same thing in Windows 10 Sandbox on my system and it also failed, with the same message. I will have to investigate that. Off the top of my head, I don’t know why that would happen. My guess (that’s all it is for now) is there’s some sort of C++ runtime dependency that nearly everyone has installed on their main machines, but that doesn’t carry over automatically to a virtual machine or a sandbox.

                      M Andre Z EckenrodeM 1 Reply Last reply Reply Quote 0
                      • M Andre Z EckenrodeM Offline
                        M Andre Z Eckenrode @Coises
                        last edited by

                        @Coises said:

                        Is he also using 32-bit Notepad++?

                        His routinely-used copy is v8.9.3 x64 portable.

                        1 Reply Last reply Reply Quote 1

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        • First post
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors