Community

    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    formula help

    General Discussion
    3
    6
    3658
    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.
    • harry reid
      harry reid last edited by

      Hi, I need some help please.

      I asked a question some time back on this site, and now i need another answer.

      take this setup for example:

      BEGIN “[i 0]” Type Wife Age 7200.000 SkinColour 0x000000ff END
      BEGIN “[i 1]” Type Son Age 7200.000 SkinColour 0x000000ff END
      BEGIN “[i 2]” Type Tree SubType 5 Pos.x 10.49121 Pos.y 111.7811 Age 7200.000 END
      BEGIN “[i 3]” Type Tree SubType 2 Pos.x 13.77533 Pos.y 34.22266 Age 7200.000 END

      someone already told me how to modify the “Age” of a “Tree” earlier…
      ? Open the Replace dialog ( CTRL + H )
      ? Select the Regular expression search mode
      ? Preferably, check the Match case option
      ? Check the Wrap around option, if necessary
      ? In the Find What zone, type Age \K.+(?= END)
      Remark : There a space, before the word Age AND after it, as well as before the word END !
      ? In the Replace with zone, type, simply, the string 7200.000
      ? Click on the Replace All button

      but HERE IS THE QUESTION: how do i alter the steps to make sure it only includes the “Tree” Age??

      I mean, when I change the “Age” of a tree…it also changes the age of the “wife”, “son”, ect… there must be a way to make sure it searches for the “Age” of a “Tree” only…

      please help…

      Claudia Frank 1 Reply Last reply Reply Quote 0
      • Claudia Frank
        Claudia Frank @harry reid last edited by

        Hello @harry-reid,

        there is no hint of tree in your regex.
        something like

         Tree .+ Age \K.+(?= END)
        

        would do it if the layout is as you posted.

        Cheers
        Claudia

        1 Reply Last reply Reply Quote 0
        • harry reid
          harry reid last edited by

          that didn’t really work…im not sure why…in my document that only changed one out of 151 “Tree” ages. was there suppose to be an extra space or something, because when I try to find values it just highlights everything, and when I just click replace all it only says 1 replaced…I know there are more trees in that file…

          1 Reply Last reply Reply Quote 0
          • Claudia Frank
            Claudia Frank last edited by

            Without knowing your data it is really hard to say what could have caused it.

            The syntax of the regex is

            Space followedby Tree followedby Space followedby “as much chars as possible until” Space followedby Age followedby Space
            \K = reset startingpoint to current position
            .+ = “as much chars as possible until” Space followedby END (but Space followedby END is a lookahead.

            I duplicated your example data and it replaced all lines having Tree … Age

            Is it possible that different case is used?
            Did you check MatchCase?
            Did you check WrapArround?

            Cheers
            Claudia

            1 Reply Last reply Reply Quote 0
            • harry reid
              harry reid last edited by

              ok that’s what it was…finally thank you so much Claudia.

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

                Hello Harry,

                Seemingly, I replied to your identical post, on the Help forum, at the address :

                https://notepad-plus-plus.org/community/topic/11367/help-on-a-formula-please/4

                I haven’t noticed this post on the Discussion forum !

                As you can see, we, both, get the same regex. Finally, I think that the $ assertion, that I added, at the end of my regex, is useless. Indeed, as the + is a greedy quantifier, it will, anyway, select the longest text, after the string "Age " till the ending string " END" !

                Cheers,

                guy038

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Copyright © 2014 NodeBB Forums | Contributors