Community
    • Login

    With the help of a Regex, how to find "code" preceded by a "<" only if "code {" is absent between "<style" and "</style>" in the css section which is below ?

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    5 Posts 1 Posters 138 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.
    • dr ramaanandD Offline
      dr ramaanand
      last edited by

      So, the “code” in this should be found:

      <code............>............</code>
      <style type="text/css">
      </style>
      

      …but not in this:-

      <code............>............</code>
      <style type="text/css">
      code {
        font-family: &quot;verdana&quot;;
        font-size: 19px;
        color: black;
        font-weight: bold !important;
        line-height: 1 !important;
        }
      }
      </style>
      
      dr ramaanandD 1 Reply Last reply Reply Quote 0
      • dr ramaanandD Offline
        dr ramaanand @dr ramaanand
        last edited by dr ramaanand

        I tried this Regular expression but it did not help: <code(?!(?:(?!<\/style>)(?s:.) )*<style>) - it matches both (I want it to skip finding the <code...... in example 2 since there is a “code” between “<style” and “</style>”)

        dr ramaanandD 1 Reply Last reply Reply Quote 0
        • dr ramaanandD Offline
          dr ramaanand @dr ramaanand
          last edited by dr ramaanand

          (?s)<code.*?code\x20\{\s*font-family(*SKIP)(*F)|<code works but I would like an expert to confirm if it is the best method
          @peterjones @alan-kilborn @guy038 or anyone else willing to help, if you have any alternative method also, I am willing to use it, since some of you dislike the (*SKIP)(*F) method

          dr ramaanandD 1 Reply Last reply Reply Quote 0
          • dr ramaanandD Offline
            dr ramaanand @dr ramaanand
            last edited by

            I have relied on the explanation of the (*SKIP)(*FAIL) method mentioned at https://community.notepad-plus-plus.org/topic/26812/generic-regex-how-to-use-the-couple-of-backtracking-control-verbs-skip-fail-or-skip-f-in-regexes/5

            dr ramaanandD 1 Reply Last reply Reply Quote 0
            • dr ramaanandD dr ramaanand referenced this topic
            • dr ramaanandD Offline
              dr ramaanand @dr ramaanand
              last edited by dr ramaanand

              An alternative Regular expression can be to introduce a negative lookahead between .*? and the code just after it in this Regex: <code.*?code\x20\{\s*font-family

              1 Reply Last reply Reply Quote 0

              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