Maison  >  Questions et réponses  >  le corps du texte

Expression régulière MySQL équivalente, équivalente à l'expression régulière Python suivante

schéma python => ^(?=.bABDULb)(?=.bHAIb.)(?=.bMANSOORb).*$
Besoin d'un schéma MySQL équivalent
pouvez-vous m'aider ?

P粉496886646P粉496886646409 Il y a quelques jours403

répondre à tous(1)je répondrai

  • P粉314915922

    P粉3149159222023-09-08 00:58:02

    L'expression régulière dans la question est une façon étrange de faire correspondre des mots simples. On ne sait pas quelle est l’entrée attendue. Peut-être que les commentaires peuvent justifier cette approche.

    ^(?=.\bABDUL\b)(?=.\bHAI\b.)(?=.\bMANSOOR\b).*$

    Cela signifie : doit commencer par tout caractère qui n'est pas un mot, suivi de ABDUL, un caractère autre qu'un mot, HAI, un caractère autre qu'un mot, MANSOOR, un caractère autre qu'un mot ou la fin de la chaîne.

    ^[^[:alnum:]]ABDUL[^[:alnum:]]HAI[^[:alnum:]]MANSOOR([^[:alnum:]]?.*)?$

    Cela signifie : le début n'est pas un chiffre ou un caractère alphanumérique (caractère alphanumérique), ABDUL, un caractère non alphanumérique, HAI, un caractère non alphanumérique, MANSOOR, un caractère non alphanumérique ou la fin de la chaîne.

    Je ne l'ai pas testé et je n'ai pas l'intention de le faire exactement comme le premier, mais il devrait être suffisamment proche.

    Pour tous ceux qui souhaitent copier ceci dans leur code :

    • Faire correspondre le premier caractère est inhabituel et peut être un bug dans l'expression régulière originale.
    • (?=...) est une "assertion anticipée" qui ne consomme aucun caractère, la version POSIX ne l'a pas, mais pour les recherches de chaînes simples, cela n'a probablement pas d'importance.
    • Les deux versions doivent correspondre à des chaînes comme !ABDUL$HAI)MANSOOR - assurez-vous que c'est ce que vous voulez.

    Pour ceux qui veulent comprendre les expressions régulières que j'utilise, vous pouvez vous référer au lien suivant :

    https://dev.mysql.com/doc/refman/8.0/en/regexp.html (syntaxe POSIX pour MySQL) et https://docs.python.org/3/library/re.html (PCRE pour python = syntaxe compatible Perl)

    répondre
    0
  • Annulerrépondre