Community
    • Login

    Regex: Find those files that doesn't contain the same link in 2 different html tags

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    30 Posts 5 Posters 1.7k 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.
    • Hellena CrainicuH
      Hellena Crainicu
      last edited by

      @guy038 and @Terry-R

      There are 2 particular lines, which is not repeated:

      <link rel="canonical" href="https://mywebsite.com/en/truth.html" />

      and

      <img src="index_files/flag_lang_de.jpg" width="28" height="19" title="de" alt="de" /></a>&nbsp; <a href="https://mywebsite.com/en/love.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>

      So, to be much better understood. I translated the site into ten languages.

      For french section I have href="https://mywebsite.com/fr/truth.html">
      For russian section I have href="https://mywebsite.com/ru/truth.html">

      so on. See those little De / FR / Ru / Hi / Ar …

      I want to check if there is any link that I omitted (in the German section, “de”), and this link for german section is only found in the line with <img src =

      Note that the links in English and German are the same, only the content of the html files is different.

      the line with <canonical represents the page in English. For example: https://mywebsite.com/en/truth.html

      the <img src=.. tag has also a link, but that link must be https://mywebsite.com/de/truth.html not the same as canonical https://mywebsite.com/en/truth.html

      That is why I must find those files that doesn’t contain the same link on canonical an <img …de> tag. If are identically, means that I miss to translate the german section ( /de/ ). Because I copy the file from english, and translated only the text.

      Terry RT 1 Reply Last reply Reply Quote 0
      • Alan KilbornA
        Alan Kilborn
        last edited by

        @guy038 said in Regex: Find those files that doesn't contain the same link in 2 different html tags:

        I’m really sorry but I still don’t understand what is your goal !

        I could see early on that this was where this thread was going to go; sometimes you can just “spot them”. :-)
        Kudos to @guy038 and @Terry-R for carrying things on…

        1 Reply Last reply Reply Quote 1
        • Hellena CrainicuH
          Hellena Crainicu
          last edited by

          I believe, much more simple was to use the ?! operators.

          Find with Regex:

          alt="de" /></a>&nbsp; <a href="https://mywebsite.com/(?!de)

          because the important was not to have the same link for english part. Once it does not have EN it means that it is not the same. ;)

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

            Hi, @hellena-crainicu, @terry-r, @alan-kilborn and All,

            @hellena-crainicu, in this post, you provided an HTMl text which contained this very long line :

            <a href="https://mywebsite.com/hope.html"><img src="index_files/flag_lang_ro.jpg" title="ro" alt="ro" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/fr/book.html"><img src="index_files/flag_lang_fr.jpg" title="fr" alt="fr" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/en/truth.html"><img src="index_files/flag_lang_en.jpg" title="en" alt="en" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/es/green.html"><img src="index_files/flag_lang_es.jpg" title="es" alt="es" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/pt/yellow.html"><img src="index_files/flag_lang_pt.jpg" title="pt" alt="pt" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/ar/truth.html"><img src="index_files/flag_lang_ae.jpg" width="28" height="19" title="ar" alt="ar" /></a>&nbsp; <a href="https://mywebsite.com/zh/truth.html"><img src="index_files/flag_lang_zh.jpg" width="28" height="19" title="zh" alt="zh" /></a>&nbsp; <a href="https://mywebsite.com/hi/truth.html"><img src="index_files/flag_lang_hi.jpg" width="28" height="19" title="hi" alt="hi" /></a>&nbsp; <a href="https://mywebsite.com/de/truth.html"><img src="index_files/flag_lang_de.jpg" width="28" height="19" title="de" alt="de" /></a>&nbsp; <a href="https://mywebsite.com/ru/truth.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>
            

            In order to better see all the contents of this loooooong line, I split it into 10 lines, corresponding to your 10 languages !

            <a href="https://mywebsite.com/hope.html"><img src="index_files/flag_lang_ro.jpg" title="ro" alt="ro" width="28" height="19" /></a>&nbsp; 
            <a href="https://mywebsite.com/fr/book.html"><img src="index_files/flag_lang_fr.jpg" title="fr" alt="fr" width="28" height="19" /></a>&nbsp; 
            <a href="https://mywebsite.com/en/truth.html"><img src="index_files/flag_lang_en.jpg" title="en" alt="en" width="28" height="19" /></a>&nbsp; 
            <a href="https://mywebsite.com/es/green.html"><img src="index_files/flag_lang_es.jpg" title="es" alt="es" width="28" height="19" /></a>&nbsp; 
            <a href="https://mywebsite.com/pt/yellow.html"><img src="index_files/flag_lang_pt.jpg" title="pt" alt="pt" width="28" height="19" /></a>&nbsp; 
            <a href="https://mywebsite.com/ar/truth.html"><img src="index_files/flag_lang_ae.jpg" width="28" height="19" title="ar" alt="ar" /></a>&nbsp; 
            <a href="https://mywebsite.com/zh/truth.html"><img src="index_files/flag_lang_zh.jpg" width="28" height="19" title="zh" alt="zh" /></a>&nbsp; 
            <a href="https://mywebsite.com/hi/truth.html"><img src="index_files/flag_lang_hi.jpg" width="28" height="19" title="hi" alt="hi" /></a>&nbsp; 
            <a href="https://mywebsite.com/de/truth.html"><img src="index_files/flag_lang_de.jpg" width="28" height="19" title="de" alt="de" /></a>&nbsp; 
            <a href="https://mywebsite.com/ru/truth.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>
            

            Now, if we isolate the line, relative to German, we get :

            <a href="https://mywebsite.com/de/truth.html"><img src="index_files/flag_lang_de.jpg" width="28" height="19" title="de" alt="de" /></a>&nbsp; 
            

            Apparently, in that line, the link <a href="https://mywebsite.com/de/truth.html"> seems to occur fisrt and the part alt="de" seems to occur later !

            Now the regex of your last post seems to search, first for the alt="de" /></a>&nbsp; string, followed with a space char and then, for the beginning of the a tag : <a href="https://mywebsite.com/(?!de)

            So, exactly the opposite that your previous example !? Again, I totally confused ! Could you provide us an exact and real example ?

            Best Regards,

            guy038

            Hellena CrainicuH 1 Reply Last reply Reply Quote 2
            • Terry RT
              Terry R @Hellena Crainicu
              last edited by Terry R

              @Hellena-Crainicu said in Regex: Find those files that doesn't contain the same link in 2 different html tags:

              I want to check if there is any link that I omitted (in the German section, “de”), and this link for german section is only found in the line with <img src =

              At this point (thanks @Alan-Kilborn) I’m about to throw in the towel (that means give up). I don’t think even with your latest post I’m entirely clear on what you need to do.

              I understand you have the first line in the set which has the <link rel="canonical" href="https://mywebsite.com/en/truth.html" /> First question, which part of the link are you testing against. Is it mywebsite.com/en/truth.html or just truth.html?

              I get that further into the set you have duplicate information, each with a language mentioned, fr, en, es, pt, ar, zh, hi, de, ru. Second question, is it that you only want to test the https reference with the de portion?

              A third question. In each html file is there just 1 set of the "link rel=… to … I ask that as even the last example suggested the example was not complete. There are the starting tags <div class="search"> and <div align="left"> yet no close on these tags appear (</div>). We need to be clear on what content exists if the example isn’t complete. What other data have you excluded? You have already excluded data which you thought irrelevent yet later you realise it was important. Anything which appears in the area starting where the test starts and the end point of the test (so between the 2 https references) is relevant and must be included to give the best chance of supplying a workable solution.

              Please answer all 3 questions precisely. If unable to, then the towel gets chucked and I’m out. And as @guy038 asks, your original regex where you look for the alt="de" string followed by https reference is clearly wrong as the alt='de' appears after the assigned https reference. It’s good that someone else spotted that as I was reading the example multiple times wondering how it should have worked with your regexes.

              One parting suggestion. It’s almost at the point where making copies of all the files and editing each to remove unneeded portions would greatly simplify the resulting regex to do the actual test. You would leave enough unique information so that the relevant section (if more than 1 in each file) would show you where to look in the appropriate original file so you could perform the necessary edit to fix the link.

              Terry

              1 Reply Last reply Reply Quote 2
              • Hellena CrainicuH
                Hellena Crainicu @guy038
                last edited by Hellena Crainicu

                hello @guy038 Was my mistake, should be: <a href="https://mywebsite.com/ru/truth.html

                <a href="https://mywebsite.com/hope.html"><img src="index_files/flag_lang_ro.jpg" title="ro" alt="ro" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/fr/book.html"><img src="index_files/flag_lang_fr.jpg" title="fr" alt="fr" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/en/truth.html"><img src="index_files/flag_lang_en.jpg" title="en" alt="en" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/es/green.html"><img src="index_files/flag_lang_es.jpg" title="es" alt="es" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/pt/yellow.html"><img src="index_files/flag_lang_pt.jpg" title="pt" alt="pt" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/ar/truth.html"><img src="index_files/flag_lang_ae.jpg" width="28" height="19" title="ar" alt="ar" /></a>&nbsp; <a href="https://mywebsite.com/zh/truth.html"><img src="index_files/flag_lang_zh.jpg" width="28" height="19" title="zh" alt="zh" /></a>&nbsp; <a href="https://mywebsite.com/hi/truth.html"><img src="index_files/flag_lang_hi.jpg" width="28" height="19" title="hi" alt="hi" /></a>&nbsp; <a href="https://mywebsite.com/de/truth.html"><img src="index_files/flag_lang_de.jpg" width="28" height="19" title="de" alt="de" /></a>&nbsp; <a href="https://mywebsite.com/ru/truth.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>
                

                so my last regex should be: alt="de" /></a>&nbsp; <a href="https://mywebsite.com/(?!ru)

                The problem of this forum is that I cannot edit again the post after couples of minutes, and I forgot to change. Of course, I didn’t think anyone would be interested anymore.

                Alan KilbornA 1 Reply Last reply Reply Quote 1
                • Alan KilbornA
                  Alan Kilborn @Hellena Crainicu
                  last edited by

                  @Hellena-Crainicu said in Regex: Find those files that doesn't contain the same link in 2 different html tags:

                  The problem of this forum is that I cannot edit again the post after couples of minutes, and I forgot to change.

                  It’s good to have the posting history, exactly as it is.
                  That way, later posts will make sense.
                  If earlier posts could change, I think we’d totally have a mess in some of the threads here (and probably this thread is a great example of that).
                  If you have new/corrected information, just add an additional post.

                  BUT…be aware the those helping you are putting a lot of time/effort into it.
                  So you really should think hard about what you are posting and try to get it right the first time, to avoid others wasting their time.
                  Sure, errors happen, but there’s a difference between and honest mistake and someone that just hasn’t bothered to think things through enough.

                  1 Reply Last reply Reply Quote 1
                  • Vasile CarausV
                    Vasile Caraus
                    last edited by Vasile Caraus

                    This post is deleted!
                    1 Reply Last reply Reply Quote 0
                    • Vasile CarausV
                      Vasile Caraus
                      last edited by Vasile Caraus

                      This post is deleted!
                      1 Reply Last reply Reply Quote 0
                      • Vasile CarausV
                        Vasile Caraus
                        last edited by Vasile Caraus

                        happy Easter, friends.

                        Another solution can be next one:

                        1. Select the link you want from canonical line: (<link rel="canonical" href=")(.*?)(" \/>)
                        2. Select the second link from ru section: (alt="de" \/></a>&nbsp; <a href=")(.*?)(><img src="index_files\/flag_lang_ru)
                        3. Combine these 2 regex in the same way (.*?) and put (\2) on second link, after (.*?) (this selects the second bracket, so the link in the canonical line)

                        So the regex become: (<link rel="canonical" href=")(.*?)(" \/>)(.*?)(alt="de" \/></a>&nbsp; <a href=")(.*?)(\2)(><img src="index_files\/flag_lang_ru)

                        eventualy, we can try (?!\2) instead of (\2) and make a FIND with .matches newsline

                        So the regex become: (<link rel="canonical" href=")(.*?)(" \/>)(.*?)(alt="de" \/></a>&nbsp; <a href=")(.*?)(?!\2)(><img src="index_files\/flag_lang_ru)

                        Don’t know why is not working. I believe my thinking was correct. :)

                        <link rel="canonical" href="https://mywebsite.com/en/truth.html" />
                        
                        <meta name="copyright" content="me, https://mywebsite.com/"/>
                        <link rel="sitemap" type="application/rss+xml" href="rss.xml" /> 
                        <link rel="image_src" type="image/jpeg" href="https://mywebsite.com/icon-facebook.jpg" style="display:none"/>    
                        <meta itemprop="image" content="https://mywebsite.com/icon-facebook.jpg"/>
                        <meta property="og:image" content="https://mywebsite.com/icon-facebook.jpg"/>
                        <meta property="og:type"  content="article" />
                        <meta property="fb:app_id" content="2156440"/>
                        <meta property="fb:admins" content="16454242"/>
                        <meta property="og:url" content="https://mywebsite.com/en/other-car.html"/>
                        
                        <body>
                        
                        TEXT TEXT
                        
                        <div class="search">
                                        <div align="left">
                        
                                          <a href="https://mywebsite.com/hope.html"><img src="index_files/flag_lang_ro.jpg" title="ro" alt="ro" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/fr/book.html"><img src="index_files/flag_lang_fr.jpg" title="fr" alt="fr" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/en/truth.html"><img src="index_files/flag_lang_en.jpg" title="en" alt="en" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/es/green.html"><img src="index_files/flag_lang_es.jpg" title="es" alt="es" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/pt/yellow.html"><img src="index_files/flag_lang_pt.jpg" title="pt" alt="pt" width="28" height="19" /></a>&nbsp; <a href="https://mywebsite.com/ar/truth.html"><img src="index_files/flag_lang_ae.jpg" width="28" height="19" title="ar" alt="ar" /></a>&nbsp; <a href="https://mywebsite.com/zh/truth.html"><img src="index_files/flag_lang_zh.jpg" width="28" height="19" title="zh" alt="zh" /></a>&nbsp; <a href="https://mywebsite.com/hi/truth.html"><img src="index_files/flag_lang_hi.jpg" width="28" height="19" title="hi" alt="hi" /></a>&nbsp; <a href="https://mywebsite.com/de/truth.html"><img src="index_files/flag_lang_de.jpg" width="28" height="19" title="de" alt="de" /></a>&nbsp; <a href="https://mywebsite.com/ru/truth.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>
                        
                        TEXT TEXT
                        
                        
                        <div id="pixxell"> <a href="https://mywebsite.com/en/book-miracle.html">I find a miracle </div>
                        
                        TEXT TEXT
                        
                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors