Community
    • 登入

    Finding characters and using them to replace

    已排程 已置頂 已鎖定 已移動 Help wanted · · · – – – · · ·
    3 貼文 2 Posters 255 瀏覽
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • A
      Acme1235
      最後由 編輯

      Hey all,

      Is there a method to use find and replace to grab a part of code from a line and use it in the replacement?

      For example, I have a line of code that has docname=“******.svg” for multiple documents. I want to take the ****** and use it in a new line with the following statement. <title ******</title>

      I understand that you can use regex to create your new line /n and .* for characters, but is there anyway to grab characters from a string and use them in your replacement?

      Thanks for the help!

      PeterJonesP 1 條回覆 最後回覆 回覆 引用 0
      • PeterJonesP
        PeterJones @Acme1235
        最後由 編輯

        @Acme1235 ,

        Yes, use regular expression mode, and a feature known as capture groups where you use a pair of () around the text that you want to match and ${1} in the replacement to reference the first group. With a couple other features, described below, I think I have what you want.

        For example,

        • FIND WHAT = (?-s)docname="(.*?)\.svg".*(\R)
          • (?-s) turns off “. matches newline”, so that a filename won’t accidentally span multiple lines with a newline sequence inside
          • there is some literal text, and the file name (sans .svg) ends up in group #1
          • then allow any text to the end of the line
          • and save the EOL character in group #2
        • REPLACE WITH = ${0}<title>${1}</title>${2}
          • ${0} is a special case of the group# replacement, where group#0 is the whole matched string
          • <title>${1}</title> gives the name of the file as the content of the title
          • ${2} takes the EOL character(s) from group#2 and uses them to end the new <title> line. (I could have just used \r\n if I wanted to assume you use Windows CRLF line endings, but this forum has shown that’s a bad assumption to make)
        • SEARCH MODE = regular expression
        • you can hit REPLACE multiple times, or REPLACE ALL once

        If this works, great! If not, try studying the documentation that was linked above, and things in the boilerplate below, try to modify this regular expression yourself to meet your needs, and feel free to come back with specific questions if you have problems. You will only learn by trying.

        ----

        Do you want regex search/replace help? Then please be patient and polite, show some effort, and be willing to learn; answer questions and requests for clarification that are made of you. All example text should be marked as literal text using the </> toolbar button or manual Markdown syntax. To make regex in red (and so they keep their special characters like *), use backticks, like `^.*?blah.*?\z`. Screenshots can be pasted from the clipboard to your post using Ctrl+V to show graphical items, but any text should be included as literal text in your post so we can easily copy/paste your data. Show the data you have and the text you want to get from that data; include examples of things that should match and be transformed, and things that don’t match and should be left alone; show edge cases and make sure you examples are as varied as your real data. Show the regex you already tried, and why you thought it should work; tell us what’s wrong with what you do get. Read the official NPP Searching / Regex docs and the forum’s Regular Expression FAQ. If you follow these guidelines, you’re much more likely to get helpful replies that solve your problem in the shortest number of tries.

        A 1 條回覆 最後回覆 回覆 引用 1
        • A
          Acme1235 @PeterJones
          最後由 編輯

          @PeterJones thanks so much for the help and links! I’ll be using it a good bit in the upcoming weeks so I’ll definitely read up on it!

          Happy friday!

          1 條回覆 最後回覆 回覆 引用 1
          • 第一個貼文
            最後的貼文
          The Community of users of the Notepad++ text editor.
          Powered by NodeBB | Contributors