разбить строку на символ, когда он находится в середине строки - PullRequest
0 голосов
/ 09 января 2020

Я хочу разбить строку на символ, когда он находится в середине строки

Пример:

string_1 = '-1232-1412'
string_2 = '1234-1243'

Я хочу получить это:

output_string_1 = ['-1232','1412']
output_string_2 = ['1234','1243']

Я пытался это сделать:

import re
In[1]: re.split(r'\w-',string_1)
Out[1]: ['-123', '1412']

, но он удалил последний символ перед '-'

Ответы [ 2 ]

2 голосов
/ 09 января 2020

Вы можете использовать это регулярное выражение с границами слов :

\b-\b

Это регулярное выражение сопоставляет дефис-обертку с границами слов с обеих сторон, таким образом, совпадая только с дефисом в середине символов слова.

Код:

>>> reg = r'\b-\b'
>>> print (re.split(reg, '-1232-1412'))
['-1232', '1412']
>>> print (re.split(reg, '1234-1243'))
['1234', '1243']

Демонстрация RegEx

2 голосов
/ 09 января 2020

Одним из способов может быть разбиение строки, утверждающей не начало строки ^, а после сопоставления -, утверждающей не конец строки $ с использованием отрицательного взгляда (?!

(?!^)-(?!$)

Regex demo | Python демо

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