Найти строку перед заглавной буквой и после - PullRequest
0 голосов
/ 21 января 2020

Я не знаю, как получить строку перед второй заглавной буквой.

Пример строки:

 - Støtfanger foran BMW E90 05-08 M3
 - Støtfanger foran VW SCIROCCO 08-04.14 R STYLE black grille
 - Støtfanger bak VW SCIROCCO 08-04.14 R STYLE
 - Eyebrows Audi TT 99-06 R8
 - Støtfanger MITSUBISHI LANCER 09-15 EVO STYLE

Мне нужно получить: Støtfanger foran, а второе (модель автомобиля): BMW E90 05-08 M3

Я не знаю, как его разбить .

Я думаю, что лучше всего использовать регулярные выражения, но я не знаю, как его создать.

Ответы [ 3 ]

1 голос
/ 21 января 2020
ex = 'Støtfanger foran VW SCIROCCO 08-04.14 R STYLE black grille'


def split_second_upper(string):
    second_upper = False
    for i in range(len(string)):
        if string[i].isupper() and i != 0:
            second_upper = True
        if second_upper:
            return string[0:i], string[i:]

name, car = split_second_upper(ex)
print(name)
print(car)
1 голос
/ 21 января 2020

Здесь вы go

str = "Støtfanger foran VW SCIROCCO 08-04.14 R STYLE black grille"
for index,element in enumerate(str): 
        if(ord(element) >= 65 and ord(element)<=90 and index >0):
            print(str[0:index])
            break
0 голосов
/ 21 января 2020

Вам не нужно регулярное выражение. Попробуйте это:

second_upper = False
for i, char in enumerate(string):
  if second_upper:
    return string[0:i], string[i:]
  if char.isupper():
    second_upper = True

Не забудьте проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...