Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130

    regexp bacata - asserzione "non preceduto da"

    hello

    La regexp

    /(?=[^x])z/

    non dovrebbe matchare tutte le "z" che non sono direttametne precedute da qualisasi cosa diversa da "x" ?

    ho provato a eseguirla ma mi trova tutte le z del mondo, anche quelle precedute da x?

    che c'e' che non va?

    grazie

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    l'asserzione che usi e' un positive lookahead, tu invece vuoi una negative lookbehind, quindi /(?<!x)z/

  3. #3
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130
    speiga spiega ... non funziona in tuti i linguaggi sta roba! l'ho appena provata in js e non va ...

  4. #4
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130
    vabbe ho dato un occhio e funziona in genere ... pero non funziona in JavaScript

    chiedo nell'altro forum ... grazie

  5. #5
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130
    Finally, flavors like JavaScript, Ruby and Tcl do not support lookbehind at all, even though they do support lookahead.
    from http://www.regular-expressions.info/lookaround.html

    e poi i miei colleghi mi chiedono perche ogni tanto spacco le tastiere in 2!

  6. #6
    Ciao,

    consiglio personale: evita di chiedere nel forum php cose che riguardano javascript o altri linguaggi perché altrimenti perderai tempo inutilmente
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    from http://www.regular-expressions.info/lookaround.html

    e poi i miei colleghi mi chiedono perche ogni tanto spacco le tastiere in 2!
    magari non ti servono le asserzioni. Magari ti basta un non capturing subpattern /(?:[^x])(z)/ e poi prendi i match dagli indici
    O forse neanche quello, magari ti basta anche solo un [^x](z).
    Alla fine dipende da cosa vuoi fare.

    ad esempio var str = "xz cz az mz xz".replace(/([^x])(z)/g, "$1a"); ti restituira' tutti gli z che non sono preceduti da una x sostituiti con una a, quindi "xz ca aa ma xz"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.