133 votes

Expression régulière pour correspondre à un point

Je me demandais quelle était la meilleure façon de faire correspondre "test.this" de "blah blah blah test.this@gmail.com blah blah" est ? Utilisation de Python.

J'ai essayé re.split(r"\b\w.\w@")

-3voto

Zibri Points 2623

En javascript, vous devez utiliser \\. pour correspondre à un point.

Exemple

"blah.tests.zibri.org".match('test\\..*')
null

et

"blah.test.zibri.org".match('test\\..*')
["test.zibri.org", index: 5, input: "blah.test.zibri.org", groups: undefined]

-3voto

Emma Points 1

Cette expression,

(?<=\s|^)[^.\s]+\.[^.\s]+(?=@)

pourrait également fonctionner correctement pour ces types spécifiques de chaînes d'entrée.

Démo

Test

import re

expression = r'(?<=^|\s)[^.\s]+\.[^.\s]+(?=@)'
string = '''
blah blah blah test.this@gmail.com blah blah
blah blah blah test.this @gmail.com blah blah
blah blah blah test.this.this@gmail.com blah blah
'''

matches = re.findall(expression, string)

print(matches)

Sortie

['test.this']

Si vous souhaitez simplifier/modifier/explorer l'expression, elle a été expliquée dans le panneau supérieur droit de la page regex101.com . Si vous le souhaitez, vous pouvez également regarder en ce lien comment il se comporterait par rapport à certains échantillons.


Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X