• Login
Community
  • Login

Help replacing some numbers

Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
7 Posts 3 Posters 1.1k 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.
  • M
    Manuel Rodríguez
    last edited by Nov 1, 2023, 8:51 AM

    First of all, sorry for my English, I’m not a native speaker.
    So tried looking for a way to solve this but i didnt found it and i cant solve it alone (im kinda dumb).

    I have a big file with thousands of lines like this
    “DETAILED_FUTURE_REGEN” “Abdullah” “” “Fusseini” “01/07/2006” “21” “” “3” “18” “15” “180” “78” “0” “MIDFIELDER_CENTRAL” “” “Accra” “120” “145” “1174”
    “DETAILED_FUTURE_REGEN” “Othmane” “” “Hamama” “03/07/2006” “769” “” “1” “7” “11” “182” “75” “1” “DEFENDER_LEFT_SIDE” “” “Rambouillet” “75” “135” “886”
    “DETAILED_FUTURE_REGEN” “Martinho” “Paíto” “Martins Mukana” “05/07/2006” “35” “” “3” “18” “16” “170” “70” “1” “DEFENDER_LEFT_SIDE” “” “Maputo” “120” “140” “1489”
    “DETAILED_FUTURE_REGEN” “Javi” “” “Paredes” “05/07/2006” “796” “” “1” “5” “15” “175” “72” “3” “DEFENDER_LEFT_SIDE” “” “Oviedo” “120” “145” “1741”

    And i need that the antepenultimate “” to always be “75” to make the lines like this

    “DETAILED_FUTURE_REGEN” “Abdullah” “” “Fusseini” “01/07/2006” “21” “” “3” “18” “15” “180” “78” “0” “MIDFIELDER_CENTRAL” “” “Accra” “75” “145” “1174”
    “DETAILED_FUTURE_REGEN” “Othmane” “” “Hamama” “03/07/2006” “769” “” “1” “7” “11” “182” “75” “1” “DEFENDER_LEFT_SIDE” “” “Rambouillet” “75” “135” “886”
    “DETAILED_FUTURE_REGEN” “Martinho” “Paíto” “Martins Mukana” “05/07/2006” “35” “” “3” “18” “16” “170” “70” “1” “DEFENDER_LEFT_SIDE” “” “Maputo” “75” “140” “1489”
    “DETAILED_FUTURE_REGEN” “Javi” “” “Paredes” “05/07/2006” “796” “” “1” “5” “15” “175” “72” “3” “DEFENDER_LEFT_SIDE” “” “Oviedo” “75” “145” “1741”

    Usually the number in the “” that i want to be 75 is either 120 or 140 but i dont know how to replace it without changing other ocurrences that also have 120/140

    Thank you in advance.

    1 Reply Last reply Reply Quote 0
    • G
      guy038
      last edited by guy038 Nov 1, 2023, 10:15 AM Nov 1, 2023, 9:52 AM

      Hello, @manuel-rodríguez and All,

      Easy with regular expressions !

      So :

      • Open your file within Notepad++

      • Move to the very beginning of your file ( Ctrl + Home )

      • Open the Replace dialog ( Ctrl + H )

      • Untick all box options

      • SEARCH "\d+(?=" "\d+" "\d+"$)

      • REPLACE "75

      • Tick the Regular expression search mode

      • Click once the Replace All button or several times on the Replace button


      Note :

      • This regex searches for a double-quote character, followed with consecutive digits chars ( \d+ ), but ONLY IF it is followed with two other zones of digits, surrounded by double-quotes and separated with a space char, till the end of current line $

      • In case of match, it replaces the double-quote, followed with the digits zone, by "75

      Here you are !

      Best Regards,

      guy038

      M 1 Reply Last reply Mar 13, 2025, 5:06 PM Reply Quote 1
      • M
        Manuel Rodríguez @guy038
        last edited by Mar 13, 2025, 5:06 PM

        @guy038 Hello buddy, sorry to @ you. The method you told me years ago was working everytime but now it doesnt.
        Do i have to change something? As you can it says that there were 0 occurrences

        fa883270-b703-4e36-8e04-4f64509be217-image.png

        M 1 Reply Last reply Mar 13, 2025, 9:44 PM Reply Quote 0
        • M
          mkupper @Manuel Rodríguez
          last edited by Mar 13, 2025, 9:44 PM

          @Manuel-Rodríguez Based on what is in the screen shot the search/replace it should have worked for you.

          One possibility is that there are now one or more spaces at the end of the lines. Instead of searching for "\d+(?=" "\d+" "\d+"$) you would search for "\d+(?=" "\d+" "\d+" *$) I added a space followed by a * just before the $.

          Also, I see that you have Wrap around turned off. If you started a search/replace from anywhere other than line 1 then the search/replace would start at whatever line you are on and would go to the end of the file. Enabling Wrap around allows the search/replace to jump from the last line back to the first.

          M 1 Reply Last reply Mar 14, 2025, 9:38 AM Reply Quote 3
          • M
            Manuel Rodríguez @mkupper
            last edited by Manuel Rodríguez Mar 14, 2025, 10:02 AM Mar 14, 2025, 9:38 AM

            @mkupper said in Help replacing some numbers:

            “\d+(?=” “\d+” “\d+” *$)

            Your right about now having spaces in the end of the lines, i guess that must be the error. I have tried “\d+(?=” “\d+” “\d+” *$) both with wrap around on and off but it doesnt work.
            Any way to delete all these spaces?

            EDIT: nwm I used Blank operations-> trim trailing space and then “\d+(?=” “\d+” “\d+”$) and its fine now. Ty both for your help!

            1 Reply Last reply Reply Quote 2
            • G
              guy038
              last edited by Mar 14, 2025, 10:08 AM

              Hello, @manuel-rodríguez, @mkupper and All,

              Manuel, could you provide us of an example of your file ( let’s say between 10 and 30 lines ), like you did in your first post ?

              When replying and pasting your text in your post, if possible, use the </> icon, named code, in the header line. It always better to get true literal text !

              See you later,

              BR

              guy038

              M 1 Reply Last reply Mar 18, 2025, 9:23 PM Reply Quote 1
              • M
                mkupper @guy038
                last edited by Mar 18, 2025, 9:23 PM

                @guy038 I think the OP has left. He had written “I used Blank operations-> trim trailing space and then “\d+(?=” “\d+” “\d+”$) and its fine now. Ty both for your help!”

                We won’t know exactly what character(s) the trailing spaces were but now know the original issue was space characters of some sort.

                In hindsight, I should have used \h* instead of * in my original proposed fix as \h matches the various horizontal space characters plus is less likely to introduce errors as people manually copy from what they read in a forum post on a screen into a regular expression.

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