Python: получение всех букв / символов в конце строки - PullRequest
0 голосов
/ 16 июня 2020

Я попытался написать RegEx в Python, который делит строку на две части, саму строку и точки в конце, так что "test ..." будет -> ["test", «...»]

Я пробовал:

regex_end = re.compile(r"([a-zA-Z0-9.',_&%+\s-]+)(\.{3,5})$")

, и он работал нормально, когда строка заканчивалась только тремя точками. Строка с 5 точками, например «test .....», приводит к [«test ..», «...»]

Как мне получить все точки? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Попробуйте это

import re

text = ['test.....', 'test...', '..test.....', 'test', '...']

for t in text:
    result = re.search('(.*?)(\.+$)', t)
    if result:
        print(result.group(1, 2))
"""
('test', '.....')
('test', '...')
('..test', '.....')
('', '...')
"""
0 голосов
/ 16 июня 2020

Используйте не жадное совпадение для первой половины и жадное (по умолчанию) совпадение для второй половины:

import re

regex_end = re.compile(r"([a-zA-Z0-9.',_&%+\s-]+?)(\.*)$")

test = ["test", "test.", "test...", "test....", "t...est. ..."]

for t in test:
    print (re.findall(regex_end, t))

приводит к правильным результатам

[('test', '')]
[('test', '.')]
[('test', '...')]
[('test', '....')]
[('t...est. ', '...')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...