• Regex to match spaces in a URL

    3
    0 Votes
    3 Posts
    1k Views
    guy038G

    Hello, @progonkpa and All,

    I suppose that the following regex S/R sould do the job !

    SEARCH (?-is)(?:<img\x20+src="\K|\G)(?:\x20*([^"\x20\r\n]+)|\x20+)

    REPLACE \1

    Remarks :

    Due to the \G syntax, the initial location of the cursor must not be followed with space characters

    Tick the Wrap around option

    Select the Regular expression search mode

    Because of the \K syntax, click on the Replace All button, exclusively. ( Do not use the Replace button ! )

    Notes :

    If we use the Free-spacing mode (?x), this regex can be expressed as : (?x-is) (?: <img \x20+ src=" \K | \G ) (?: \x20* ( [^"\x20\r\n]+ ) | \x20+ )

    So the regex engine is looking for a string <img src=", first, with this exact case

    Then , due the \K syntax, anything being matched, so far, is canceled and the regex engine, now, searches, either, for :

    A non-null range of non-space characters, possibly preceded by space chars

    A non-null range of space characters

    Then, due the \G syntax, it searches, for the same ranges, as above, right after the location of the last match. If a match cannot be found, it tries, again, to find an other string <img src=" and so on…

    Note that the (?:...........) structures are non-capturing groups which do not store anything for further use, either, in search and/or replacement !

    In replacement, we only rewrite the non-space characters [^"\x20\r\n]+ stored in group 1

    Best Regards,

    guy038

  • Suddenly cannot type [ in Notepad++

    4
    0 Votes
    4 Posts
    9k Views
    Shrikant ShrinivasS

    Had the same problem today, 07-Dec-2020

    Initially thought there was a problem with the Keyboard, or some gaming settings had come on. But found that it was typing normally in every other program.

    Finally found the problem. It seems that I had accidentally pressed some key combination that had activated a shortcut that made the file Read-Only.

    Fiddling around, found a setting in Edit Menu. And removed the Read only status.

    Everything was normal immediately.

  • Regex for locating a line with two non-consecutive tab characters

    6
    0 Votes
    6 Posts
    586 Views
    Terry RT

    @glossar said in Regex for locating a line with two non-consecutive tab characters:

    I understand you. I, too, do ask askers to try first what they ask.

    I’m sorry if what we said has offended you. But I will reiterate my previous post. We aren’t a free bus service hop on and hop off at will.

    That said, I did offer up a solution for you. All you need to do is convert that into some regexes. My steps are such that these should be easy to code up for someone just learning regex. And if you were to do that and still miss getting what you wanted then show us what you had done. We’d be glad to guide you some more.

    From our point of view if we gave everyone the solutions they want without asking for something in return we’d be inundated with requests. It’s much like the proverb:
    “if you give a hungry man a fish, you feed him for a day, but if you teach him how to fish, you feed him for a lifetime”. My guidance is an attempt at teaching you how to “fish”.

    Terry

  • Regex for deleting a number in a line only if it is the only one

    10
    0 Votes
    10 Posts
    1k Views
    glossarG

    Hi @guy038 and @Terry-R ,

    Thank you both for your subsequent solutions. Alan’s @Alan-Kilborn formula have done the job, so I can’t even reproduce the problem now :P, but I’ll note yours just in case I need it again.

    Thanks again.
    glossar

  • Marking links for deletion

    2
    0 Votes
    2 Posts
    216 Views
    Alan KilbornA

    @Henk-ter-Heide said in Marking links for deletion:

    When I double click a link it gets opened in my browser and when I triple-click it, it gets marked and I can delete it.

    Triple-clicking selects the entire current line, including the line-ending, so your link must occupy the entire line for this to work. In general, though, it is not true that triple-clicking selects a link.

    Also, my experience is that the double-click logic also fires, so yes you will get your link opened in a browser before it is selected.

    However, I can’t replicate your other experiences, at least with Notepad++ 7.9.1.

  • I want to make a calculator but I like don't know anything

    5
    0 Votes
    5 Posts
    458 Views
    PeterJonesP

    @flamemaster46 ,

    Given your user name (“flamemaster” implies you like giving and/or receiving insults) and the posts you’ve made so far, I am guessing you are here to troll us.

    On the off chance you aren’t, and you’re really in need of this level of basics: Notepad++ is a text editor. You can use any text editor you want for programming in C++. We think that the features of Notepad++ like syntax highlighting and the available plugins make it a useful tool for entering the source code for C++ and many (any) other programming languages. However, this forum is not a generic programming forum; we aren’t here to answer any random programming questions you have – and we definitely aren’t here to help you go the “shortcut way” of learning c++, or telling you what you can program in c++. Just about any application you can think of, there’s probably a way to do it in c++; and as far as I know, any c++ code you can write, you can use Notepad++ as the text editor to write the code in. But Notepad++ is not a c++ compiler; it is a text editor – you have to have an external compiler in order to compile your c++ code into an executable.

    If you were interested in seeing how to run your compiler from inside Notepad++, I give examples elsewhere in the forum of how to use the NppExec plugin to run external compilers (just do an advanced search for “NppExec” and my user name).

    But if you’re just here to get or give insults, or otherwise troll us, please don’t bother; that’s not why we’re here.

  • Highlight non-breaking spaces

    2
    0 Votes
    2 Posts
    324 Views
    Alan KilbornA

    @Myvh

    There’s info HERE on that, and HERE also.
    Note that you may have to read down a bit into those threads, where more of what you are interested in occurs.

    Definitely doable, with a bit of effort.

  • Help support Perl6/raku language

    2
    0 Votes
    2 Posts
    317 Views
    EkopalypseE

    @abelfourier
    you can check here if there is already an UDL available
    or here on how to create one.

  • 0 Votes
    2 Posts
    250 Views
    EkopalypseE

    @Vyrre

    no, these settings change npp internal behavior for
    functions like find dialog etc…, these are not intended for
    building/simulating an IDE.
    I would recommend to use the excellent NppExec plugin
    which allows you to create different profiles to run different commands.

  • Function List and PL/SQL packages

    29
    0 Votes
    29 Posts
    33k Views
    Marco GonzalezM

    Hi guys, after a few little changes it seems to work now for all my Plsql files…
    <?xml version=“1.0” encoding=“UTF-8” ?>
    <!-- ==========================================================================\

    To learn how to make your own language parser, please check the following link: https://npp-user-manual.org/docs/function-list/

    |
    =========================================================================== -->
    <NotepadPlus>
    <functionList>
    <!-- ========================================================= [ PL/SQL ] -->
    <parser
    displayName=“SQL-mehods”
    id =“sql_syntax”
    commentExpr=“(?x) # Utilize inline comments (see RegEx - Pattern Modifiers)
    (?s:\x2F\x2A.?\x2A\x2F) # Multi Line Comment
    | (?m-s:-{2}.$) # Single Line Comment
    " >
    <classRange
    mainExpr =”(?x) # Utilize inline comments (see RegEx - Pattern Modifiers)
    (?mi) # case insensitive
    ^\h* # optional leading blanks
    (CREATE\s+(?:OR\s+REPLACE\s+)?)?PACKAGE\s+(?:BODY\s+)? # start-of-package indicator
    (?:\w+.)? # schema name, optional
    (?‘PACKAGE_ID’\w+) # package name
    (?s:.?) # whatever, until…
    ^\hEND(?:\s+\k’PACKAGE_ID’)\s*; # …end-of-package indicator
    " >
    <className><nameExpr expr=“(?i:PACKAGE\s+(?:BODY\s+)?)\K(?:\w+.)?\w+” /></className>
    <function mainExpr=“^\h*(?i:FUNCTION|PROCEDURE)\s+\K\w+\s*(([^()]))?“>
    <functionName><funcNameExpr expr=”\w+" /></functionName>
    </function>
    </classRange>
    <function mainExpr="^\h(CREATE\s+(?:OR\s+REPLACE\s+)?)?(?i:FUNCTION|PROCEDURE)\s+\K\w+\s*(([^()]*))?” >
    <functionName><nameExpr expr=“\w+” /></functionName>
    </function>
    </parser>
    </functionList>
    </NotepadPlus>

    I also indented it my own way, sorry for that, enjoy it!

  • How to unescape?

    14
    1 Votes
    14 Posts
    15k Views
    guy038G

    Hi, @gioacchino-piazzolla, @alan-kilborn and All,

    I agree that I could have written the first regex S/R to Escape these special characters as :

    SEARCH (\a)|(\x08)|(\f)|(\n)|(\r)|(\t)|(")|(')|(\\)

    REPLACE \\(?1a)(?2x08)(?3f)(?4n)(?5r)(?6t)(?7")(?8')(?9\\)

    But , in that case, any text is changed in a one-line text. Just give it a try with the change.log or license.txt file ! Don’t know if this syntax is expected by the OP ?

    Now, I added the single quote character as I remember that the TextFX plugin can escape/unescape the ' character !

    BR

    guy038

  • select lines with specific number of word it it

    9
    0 Votes
    9 Posts
    1k Views
    guy038G

    Hello @dimitrov, @alan-kilborn, @peterjones, @astrosofista and All,

    Two days later, I realize that my generic regex could be shortened a bit ! Reading, again, what I said in my previous post :

    Part WITHOUT Hi (Part WITHOUT Hi + Hi) x 4 Part WITHOUT Hi ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | | | | V V V V (?x-s) ^ ( (?! Hi ).)* ( ((?!Hi).)*? Hi ){4} ((?!Hi).)* $ # The INITIAL regex

    You may see, as I did, that the regex begins with “Part WITHOUT Hi” and ( “Part WITHOUT Hi” and “Hi” ) repeated four times. So, there is a redundant part in this expression !

    The initial regex should be, simply :

    ^ (Part WITHOUT Hi + Hi) x 4 + Part WITHOUT Hi $ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | | | V V V (?x-s) ^ ( ((?!Hi).)*? Hi ){4} ((?!Hi).)* $ # The INITIAL regex

    Thus, the four generic regexes to solve general cases are simplified :

    To match lines containing your string, whatever the case, as a whole expression, the number of times, within the range :

    (?i-s)^(?:((?:(?!(\bYour string\b)).)*?)(?2)){Your range}(?1)$

    To match lines containing your string, whatever the case, the number of times, within the range :

    (?i-s)^(?:((?:(?!(Your string)).)*?)(?2)){Your range}(?1)$

    To match lines containing your string, with its exact case, as a whole expression, the number of times, within the range :

    (?-is)^(?:((?:(?!(\bYour string\b)).)*?)(?2)){Your range}(?1)$

    To match lines containing your string, with its exact case, the number of times, within the range :

    (?-is)^(?:((?:(?!(Your string)).)*?)(?2)){Your range}(?1)$

    For instance, all the regexes, below, are valid :

    (?i-s)^(?:((?:(?!(\bHi\b)).)*?)(?2)){4}(?1)$

    (?i-s)^(?:((?:(?!(Hi)).)*?)(?2)){3,5}(?1)$

    (?i-s)^(?:((?:(?!(\bThis is a test\b)).)*?)(?2)){2,4}(?1)$

    (?-is)^(?:((?:(?!(\bThis is a test\b)).)*?)(?2)){2,4}(?1)$

    Just test them against this text below, pasted in a new tab : :

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ---Hi----- ---Hi----Hi---- ---Hi----Hi-----Hi---- ---Hi----Hi-----Hi----Hi---- ---Hi----Hi-----Hi----Hi----Hi---- ---Hi----Hi-----Hi----Hi----Hi----Hi----- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ---This is a test----- ---This is a test----This is a test---- ---This is a test----This is a test-----This is a test---- ---This is a test----This is a test-----This is a test----This is a test---- ---This is a TEST----This is a TEST-----This is a TEST----This is a TEST---- ---This is a test----This is a test-----This is a test----This is a test----This is a test---- ---This is a test----This is a test-----This is a test----This is a test----This is a test----This is a test-----

    Below, a list of the different steps in the genesis of the generic regex which should help you to understand this tricky regex !

    ^ ( Part WITHOUT Hi + Hi) x 4 + Part WITHOUT Hi $ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | | | V V V (?x-s) ^ ( ( (?! Hi ).)*? Hi ){4} ( (?!Hi).)* $ # The INITIAL regex (?x-s) ^ (?: (?: (?! Hi ).)*? Hi ){4} (?: (?!Hi).)*? $ # We change all GROUPS as NON-CAPTURING, add a LAZY quantifier and notice 2 IDENTICAL blocks ! ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Gr1 V (?x-s) ^ (?: ( (?: (?! Hi ).)*? ) Hi ){4} (?: (?!Hi).)*? $ # We create a NEW group 1 AROUND the FIRST block –– –– Gr1 V (?x-s) ^ (?: ( (?: (?! Hi ).)*? ) Hi ){4} (?1) $ # We replace the 2nd BLOCK by a SUB-ROUTINE CALL to GROUP 1 (?1) ¯¯ ¯¯ Gr1 Gr2 V V (?x-s) ^ (?: ( (?: (?! (Hi) ).)*? ) Hi ){4} (?1) $ # We create a NEW group 2 AROUND the FIRST string "Hi" Gr1 Gr2 V V (?x-s) ^ (?: ( (?: (?! (Hi) ).)*? ) (?2) ){4} (?1) $ # We replace THE 2nd string "Hi" by a SUB-ROUTINE CALL to GROUP 2 (?2) (?-s)^(?:((?:(?!(Hi)).)*?)(?2)){4}(?1)$ # We suppress the FREE-SPACING mode and DELETE any SPACE character (?i-s)^(?:((?:(?!(Hi)).)*?)(?2)){4}(?1)$ # We add the CASE modifier (?i-s)^(?:((?:(?!(\bHi\b)).)*?)(?2)){4}(?1)$ # We add the \b BOUNDARIES to get a WHOLE expression ^ | For the 3 LAST regexes, STOP the SELECTION at the $ sign

    You may test any of these regexes above, against the text below, pasted in a new tab. It matches only the line containing exactly four strings Hi !

    ---Hi----- ---Hi----Hi---- ---Hi----Hi-----Hi---- ---Hi----Hi-----Hi----Hi---- ---Hi----Hi-----Hi----Hi----Hi---- ---Hi----Hi-----Hi----Hi----Hi----Hi-----

    Best regards,

    guy038

  • paragraph line break

    33
    0 Votes
    33 Posts
    7k Views
    PeterJonesP

    @kracovwolf said in paragraph line break:

    do you know if the macros are stored in notepads settings

    This and other such questions are answered in the npp-user-manual.org website, which is linked inside Notepad++ as the ? menu’s Notepad++ Online Document entry.

    The location of config files is described in https://npp-user-manual.org/docs/config-files/ The macros section of shortcuts.xml is described at https://npp-user-manual.org/docs/config-files/#macros The overview of macros is found at https://npp-user-manual.org/docs/macros/
  • Setting a user file extension is not working

    7
    0 Votes
    7 Posts
    614 Views
    PeterJonesP

    @Alan-Kilborn said in Setting a user file extension is not working:

    is it possible

    Yes. Either put it as a UDL extension, or remove it from langs.xml

  • CMD.bat script - Error REG DELETE statement

    3
    0 Votes
    3 Posts
    465 Views
    BigstarblueB

    @dinkumoil

    I thank you for the interest you had in helping me. I really appreciate your help.

    You were absolutely right. The problem was with the 32-bit version of N++ I was using. I changed it to 64-bit and it worked perfectly.

    Explanation more than simple and clear !!!

    Thank you again,

    Bigstarblue

  • Find value in line and delete that line and previous line?

    5
    1 Votes
    5 Posts
    332 Views
    Phat LixP

    @PeterJones

    Oh geez! That is a fantastic collection. Thank you.

  • how Find the specific IP in the IP list in notpad++

    8
    0 Votes
    8 Posts
    2k Views
    guy038G

    Hi, @alan-kilborn and All,

    I’m totally agree with you. The legal syntax is, indeed, the special conditional syntax ((?(DEFINE)...........). Just think about the word DEFINE, in upper case !

    Then, an alternative syntax could be, of course, (............)(*F). Indeed, in manuals, the DEFINE part is described as a part of regex which does never match anything, by principle !

    Finally, my syntax ( the third one ), although correct, should be considered as a user’s work-around !

    Cheers,

    guy038

  • How to understand the functionlist parameters

    26
    0 Votes
    26 Posts
    5k Views
    guy038G

    Hello @BGM-coder,

    Could you confirm me that the regexes should act as below :

    Case A ^[[]]: => Unchanged Case B ^[[aaaaa]]: => Unchanged Case C [[bbbbb]] not followed by (ccccc) => Unchanged Case D (eeeee) preceded by [[ddddd]] => Unchanged Case E ^[]: => Unchanged Case F [fffff] not followed by (gggggg) => [-fffff] Case G (iiiii) preceded by [hhhhh] => (-iiiii) Case H ^[jjjjj]: => [-jjjjj]:

    Note that, when cases F or G occur, the respective passage fffff or iiiii may be defined or not

    See you later,

    Cheers,

    guy038

  • How can I write pug js codes in this editor?

    4
    0 Votes
    4 Posts
    1k Views
    PeterJonesP

    @Emo-Ser ,

    It appears you want syntax highlighting. I already gave you links to learn how to create a UDL for pug js, which will add syntax highlighting.

    If, instead, you want to extend the HTML lexer, so that the pug js code is in a different color than any of the normal HTML tags, then you can add extra highlighting to a builtin lexer (like the HTML lexer) using regexes via the script EnhanceAnyLexer.py that @Ekopalypse shares in his github repo

    If I have not answered your question sufficiently, then maybe you can try asking more specific questions, and someone else can try to interpret your desires and give a better answer, because I don’t know what more I can say.

    Good luck.

  • Styling &#39;

    6
    0 Votes
    6 Posts
    395 Views
    BGM CoderB

    Oh - thanks, Peter, for your time and for looking at it for me!