• Remove special characters in certain location in csv file

    10
    0 Votes
    10 Posts
    9k Views
    guy038G

    Hi, @claudia-frank,

    In other words, considering the general case, we have to search for C text, between two limits A and B

    But, how to define text, which is between these two limits ? Well, simply, because, at ANY location reached :

    A limit A must not be found, further on, in the same line

    A limit B must be found, further on, in the same line

    This implies the two conditions to respect :

    The negative look-ahead (?!.*?A)

    The positive look-ahead (?=.+?B)

    In our particular case :

    Limit A is the string "file:\x2F\x2F ( \x2F represents the normal slash character, / )

    Limit B is the simple ending " character

    And, of course, C is the regex to get special characters [^\w:/.]

    Just notice that we could swap the two lookarounds, without any problem ! Remember that, at any location, reached by the regex engine, the two conditions, resulting of the look-arounds, are, necessarily, both, evaluated !

    Thus, the complete search regex (?-is)(?=.+?")(?!.*?"file:\x2F\x2F)[^\w:/.], correctly, find the same special characters, as in my previous post !

    Now, using the example text, below :

    A sim^ple tes#t "file://^598C308F;75D2A1D485#22405CE21918@E94D6475FC22E^pimgpsh_thumbnail_win_distr.jpg" A si;mple Te@st

    As long as the current regex engine location is before the string "file:…, the negative look-ahead (?!.*?"file:\x2F\x2F) is not true, so no overall match is possible, whatever the text C searched

    As soon as the current regex engine location is at the ending " double quote, or further on, the positive look-ahead (?=.+?") is false, so no overall match is possible, too, whatever the text C searched

    But, when the current regex engine location is, BOTH, right after the "file:… string AND before the ending " double quote, the two conditions are, simultaneously, TRUE. So, an overall match may be found, providing it, also, matches the C text. That is to say, the regex [^\w:/.]

    Cheers,

    guy038

    P.S. :

    Note that when the current regex engine location is right after the starting double quote, the negative look-ahead (?!.*?"file:\x2F\x2F), this time, is true. So, we need to include the semicolon and the slash, as regular characters. Otherwise, they would be found and deleted, as well as the dot character !

  • Copy and paste inside a macro

    5
    0 Votes
    5 Posts
    7k Views
    guy038G

    Hello, @gregory-west,

    No doubt, @claudia-Frank, that your macro does the job, correctly !!

    But, I’m thinking about an easier method !

    First, select any range of characters that is to be repeated, several times, with additional text

    ( In our example it would be all the characters, located to the left of a specific column ! )

    Secondly, opens the Replace dialog ( Ctrl + H )

    => The selection is, automatically, filled up, in the Search what: box

    In the Replace with: box, simply type $0 added text $0 another text $0

    Select the Regular expression search mode ( IMPORTANT )

    Click on the Replace button, several times or just once time the Replace All button

    Et voilà !

    Notes :

    The $0 syntax represents ALL the search contents !

    To insert a new string, just do any other selection and update the Replace dialog, hitting the Ctrl + H shortcut !

    You may, as well, change the additional replacement text. For example : $0 This is $0 the text $0 to insert, among the "$0" strings

    Remark :

    Gregory, if your selection contains one, or more, of these 13 characters . [ { } ( ) \ * + ? ^ $ |, you’ll must escape each of them, with a backslash ( \ ), as there are special regex characters !

    Best Regards,

    guy038

  • Unable to associate .Config files with Notepad ++ !!

    Locked
    1
    0 Votes
    1 Posts
    994 Views
    No one has replied
  • Creating Notepad++ Plugin from Scratch

    Locked
    1
    0 Votes
    1 Posts
    938 Views
    No one has replied
  • all lines highlighted by default after update

    3
    0 Votes
    3 Posts
    1k Views
    Matthew HollanderM

    thank you so much for the suggestion.
    i deleted a few of the installed plugins and the problem immediately disappeared.
    phew!
    npp is my favorite text editor-
    thanks again,

  • %systemroot%/system32/drivers/etc/ not found

    3
    0 Votes
    3 Posts
    3k Views
    duxingzheD

    I did’t type it. I just use file explorer to navigate to C:\Windows\system32\drivers\etc\ directory by directory. Sublime is 64bit. It may the reason that you mentioned.

  • Where did my last session go?

    Locked
    6
    0 Votes
    6 Posts
    8k Views
    Claudia FrankC

    @Rainer-Heilke

    I am a little confused as to why this upgrade, as opposed to previous updates, didn’t restore the whole session

    Hard to tell, could it be that you changed how npp should be installed?
    Changing from %APPDATA% to local installation? Could be an installation issue as well.

    Thank you very much for your help, and for how quickly you responded.

    Your welcome.

    Cheers
    Claudia

  • Compare multiple XML files

    9
    0 Votes
    9 Posts
    31k Views
    Claudia FrankC

    @Alexandru-Adrian-Meroșu

    another free app is diffmerge,
    maybe useful to you.

    Cheers
    Claudia

  • SWAPPING OUT THEMES

    2
    0 Votes
    2 Posts
    2k Views
    Claudia FrankC

    @Dan-Padric

    I assume the easiest would be to use a zipped notepad++ package and install in
    two different places but if I’m right you are also aware of python script plugin and
    another solution would be to do something like this

    def change_styles(): # editor.styleResetDefault() editor.styleSetBack(0, (30, 30, 30)); editor.styleSetFore(0, (200, 200, 200)); editor.styleSetBack(1, (30, 30, 30)); editor.styleSetFore(1, (87, 166, 74)); editor.styleSetBack(2, (30, 30, 30)); editor.styleSetFore(2, (255, 128, 128)); editor.styleSetBack(3, (30, 30, 30)); editor.styleSetFore(3, (214, 157, 133)); editor.styleSetBack(4, (30, 30, 30)); editor.styleSetFore(4, (214, 157, 133)); editor.styleSetBack(5, (30, 30, 30)); editor.styleSetFore(5, (54, 125, 198)); editor.styleSetBack(6, (30, 30, 30)); editor.styleSetFore(6, (200, 200, 200)); editor.styleSetBack(7, (30, 30, 30)); editor.styleSetFore(7, (200, 200, 200)); editor.styleSetBack(8, (30, 30, 30)); editor.styleSetFore(8, (138, 138, 255)); editor.styleSetBack(9, (30, 30, 30)); editor.styleSetFore(9, (250, 205, 34)); editor.styleSetBack(10,(30, 30, 30)); editor.styleSetFore(10, (255, 128, 0)); editor.styleSetBack(11,(30, 30, 30)); editor.styleSetFore(11, (141, 166, 206)); editor.styleSetBack(12,(30, 30, 30)); editor.styleSetFore(12, (87, 166, 74)); editor.styleSetBack(13,(30, 30, 30)); editor.styleSetFore(13, (214, 157, 133)); editor.styleSetBack(14,(30, 30, 30)); editor.styleSetFore(14, (0, 97, 194)); editor.styleSetBack(15,(30, 30, 30)); editor.styleSetFore(15, (200, 200, 200)); editor.styleSetBack(16,(30, 30, 30)); editor.styleSetFore(16, (200, 200, 200)); editor.styleSetBack(17,(30, 30, 30)); editor.styleSetFore(17, (200, 200, 200)); editor.styleSetBack(18,(30, 30, 30)); editor.styleSetFore(18, (200, 200, 200)); editor.styleSetBack(19,(30, 30, 30)); editor.styleSetFore(19, (200, 200, 200)); editor.styleSetBack(20,(30, 30, 30)); editor.styleSetFore(20, (200, 200, 200)); editor.styleSetBack(21,(30, 30, 30)); editor.styleSetFore(21, (200, 200, 200)); editor.styleSetBack(22,(30, 30, 30)); editor.styleSetFore(22, (200, 200, 200)); editor.styleSetBack(23,(30, 30, 30)); editor.styleSetFore(23, (200, 200, 200)); editor.styleSetBack(24,(30, 30, 30)); editor.styleSetFore(24, (200, 200, 200)); editor.styleSetBack(25,(30, 30, 30)); editor.styleSetFore(25, (200, 200, 200)); editor.styleSetBack(26,(30, 30, 30)); editor.styleSetFore(26, (200, 200, 200)); editor.styleSetBack(27,(30, 30, 30)); editor.styleSetFore(27, (200, 200, 200)); editor.styleSetBack(28,(30, 30, 30)); editor.styleSetFore(28, (200, 200, 200)); editor.styleSetBack(29,(30, 30, 30)); editor.styleSetFore(29, (200, 200, 200)); editor.styleSetBack(30,(30, 30, 30)); editor.styleSetFore(30, (200, 200, 200)); editor.styleSetBack(31,(30, 30, 30)); editor.styleSetFore(31, (200, 200, 200)); editor.styleSetBack(32,(30, 30, 30)); editor.styleSetFore(32, (200, 200, 200)); editor.styleSetBack(33,(30, 30, 30)); editor.styleSetFore(33, (43, 145, 175)); editor.styleSetBack(34,(38, 79, 120)); editor.styleSetFore(34, (220, 220, 220)); editor.styleSetBack(35,(30, 30, 30)); editor.styleSetFore(35, (147, 0, 0)); editor.styleSetBack(36,(30, 30, 30)); editor.styleSetFore(36, (200, 200, 200)); editor.styleSetBack(37,(30, 30, 30)); editor.styleSetFore(37, (136, 138, 133)); editor.styleSetBack(38,(0, 0, 0)); editor.styleSetFore(38, (128, 128, 128)); editor.setCaretFore((128, 128, 128)) editor.setCaretLineBack((0, 0, 0)) for i in range(15): editor.styleSetFont(i, 'Courier New') editor.styleSetSize(i,12) editor.setFoldMarginColour(True, (30, 30, 30)) editor.setFoldMarginHiColour(True, (30, 30, 30)) def callback_BUFFERACTIVATED(args): if editor.getLexer() in [1,2]: change_styles() else: editor.setFoldMarginColour(False, (30, 30, 30)) editor.setFoldMarginHiColour(False, (30, 30, 30)) notepad.clearCallbacks([NOTIFICATION.BUFFERACTIVATED]) notepad.callback(callback_BUFFERACTIVATED, [NOTIFICATION.BUFFERACTIVATED])

    Put this into the user startup.py.
    Basically, every time you switch/open a document it checks if it is either a normal text
    or python document and in such a case changes the styles.
    The meaning of the styles can be seen in stylers.xml but be aware that not
    every style id from global styles can be set but needs to be callled with a different
    function like setFoldMarginColour etc…

    Cheers
    Claudia

  • This app can't run on your PC - error

    3
    0 Votes
    3 Posts
    3k Views
    espressokidE

    I found the problem. Win 10 had disassociated the link with text files. There was no default app set to open text files. Not sure why that happened but I set the default to Notepad++ and all is well.

  • Downloaded CSS file wrapped into one line after editing & uploading

    Locked
    2
    0 Votes
    2 Posts
    2k Views
    Claudia FrankC

    @melissadavisgithub

    could it be that this is some kind of eol issue?
    Like you edit the file with windows eol while uploading to a unix server which expects \n only?
    View->Show Symbols->Show end of line

    Cheers
    Claudia

  • Column mode weirdness

    Locked
    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • functionList problems

    3
    0 Votes
    3 Posts
    2k Views
    Gerzson BékG

    This is very good! Many thanks!
    I tried a similar solution, but i wrote it to the ‘javascript_function’ parser with id=58, because the comment line at start of the file says: “Don’t use L_JS (19) use L_JAVASCRIPT (58) instead!”
    So thanks again! It works now.

    Gee

    ps.: Sorry for i started a new thread, but my notepad++ is a newer version and i didn’t check all of the older threads.

  • what about installing on my mobile device?

    Locked
    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Wrap around beep

    Locked
    2
    1 Votes
    2 Posts
    1k Views
    richluxR

    I would also like that.

    Rich

  • New install - No new plugins available

    3
    0 Votes
    3 Posts
    6k Views
    Pascal666P

    I do not see a refresh button, but I loaded it multiple times with no change. Networking is working fine for everything else.

    AppData\Roaming\Notepad++\plugins\config\PluginManagerPlugins.zip was 0 bytes. I overwrote it with PluginManagerPlugins.* from another installation and restarted. It then recommended the PluginManager upgrade and now appears to be working correctly.

  • Save As does not display working foder

    2
    0 Votes
    2 Posts
    1k Views
    Claudia FrankC

    @KerryRuddock

    what do you mean by

    I have my working folder set to htdocs,

    ?

    You set it in the settings or you assume that using folder as workspace does it?
    If the latter is the case, than, afaik, this isn’t true.
    Afaik, for the first time the saveas dialog is used,
    a new document will use the installation directory, if not specified otherwise in settings,
    and subsequent calls to the saveas dialog, for new documents, will use the last directory
    used for a save operation.

    Cheers
    Claudia

  • visualisation

    2
    0 Votes
    2 Posts
    1k Views
    Claudia FrankC

    @Francis-BUCAMP

    not sure what you are talking about, which xml tree do you refer to?
    A special plugin?

    Cheers
    Claudia

  • Tweak natively supported language lexing

    Locked
    2
    0 Votes
    2 Posts
    1k Views
    gstaviG

    Settings -> Style Configurator
    Language: javescript
    Style: keyword
    User-defined keywords: let
    Save & Close

  • deplace a block to an other place

    27
    0 Votes
    27 Posts
    17k Views
    guy038G

    Hi, All,

    I’m back for additional information, about lazy, greedy and possessive quantifiers. it’s fundamental to, correctly, understand the differences, between these 3 types of quantifiers !

    So, let’s consider the simple text 12345ABCDE, in a new tab

    How the regex engine interprets, for instance, the regex \w{1,10}[A-Z]{5}, with the greedy quantifier {1,10} ?. Well :

    It, first, tries to match the LONGEST range of \w => 10 Word characters. But, the part [A-Z]{5} CANNOT match anything

    Then, it backtracks and tries the first 9 Words characters. Again, the part [A-Z]{5} does NOT match the E letter

    Then, it backtracks and tries the first 8 Words characters. Again, the part [A-Z]{5} does NOT match the DE letters

    Then, it backtracks and tries the first 7 Words characters. Again, the part [A-Z]{5} does NOT match the CDE letters

    Then, it backtracks and tries the first 6 Words characters. Again, the part [A-Z]{5} does NOT match the BCDE letters

    Then, it backtracks and tries the first 5 Words characters. This time, the part [A-Z]{5} DOES match the ABCDE letters

    => After the backtracking phase, all the text is matched and selected !

    Now, how the regex engine interprets the regex \w{1,10}?[A-Z]{5}, with the lazy quantifier {1,10}? ?

    It, first, tries to match the SHORTEST range of \w => 1 Word character. But, the part [A-Z]{5} CANNOT match the 2345ABCDE string

    Then, it backtracks and tries the first 2 Words characters. Again, the part [A-Z]{5} does NOT match the 345ABCDE string

    Then, it backtracks and tries the first 3 Words characters. Again, the part [A-Z]{5} does NOT match the 45ABCDE string

    Then, it backtracks and tries the first 4 Words characters. Again, the part [A-Z]{5} does NOT match the 5ABCDE string

    Then, it backtracks and tries the first 5 Words characters. This time, the part [A-Z]{5} DOES match the ABCDE letters

    => After the backtracking phase, all the text is matched and selected !

    Note : Instead of the English werb backtrack, the verb fortrack would be more adapted ! Sorry, English isn’t my mother tongue !

    Finally, how the regex engine interprets the regex \w{1,10}+[A-Z]{5}, with the possessive quantifier {1,10}+ ?

    It, first, tries to match the LONGEST range of \w => 10 Word characters. But, the part [A-Z]{5} CANNOT match anything

    Now, the normal process would be to backtrack. But this action is forbidden, due to the possessive quantifier ! In other words, once a match has been found, for the first part \w{1,10}+, the following parts of the regex must match the remaining of the text. But, as the first regex part have consumed all the text, the part [A-Z]{5} will NEVER match anything !
    So, the overall match fails and you get the normal message Find: Can’t find the text “\w{1,10}+[A-Z]{5}”

    Using, again, the same example 12345ABCDE, in a new tab, it’s easy to verify that :

    The regex \w{1,10} matches the longest Word characters range => The whole string 12345ABCDE is matched

    The regex \w{1,10}? matches the shortest Word characters range => The 1 Word character is matched, then the 2 digit and so on…

    The regex \w{1,10}+ matches the longest Word characters range => The whole string 12345ABCDE is matched, too !

    So, to sum up, here is, below, a list of all the quantifiers :

    GREEDY quantifiers : * ( = {0,} ) + ( = {1,} ) ? ( = {0,1} ) {n} {n,} {m,n} LAZY quantifiers : *? ( = {0,}? ) +? ( = {1,}? ) ?? ( = {0,1}? ) {n}? {n,}? {m,n}? POSSESSIVE quantifiers : *+ ( = {0,}+ ) ++ ( = {1,}+ ) ?+ ( = {0,1}+ ) {n}+ {n,}+ {m,n}+

    Remark : The two {n}? and {n}+ syntaxes, although correct, are useless, as the syntax {n} could be qualified as an EXACT quantifier !

    Best Regards,

    guy038