Строка без пробелов должна быть разделена на основе шаблона

#python #regex

#python #регулярное выражение

Вопрос:

У меня есть строка

 number234-456-132
abc235-456-456
bhjklsds:456-133-456
  

Я хочу разделить строки как

 number 234-456-132
abc 235-456-456
bhjklsds: 456-133-456
  

В тексте, к которому присоединяется число, нет шаблона.

Комментарии:

1. разделяется при появлении digit или :

2. Это строка? список строк? …

3. Список строк

4. Разделить на (?<=[a-z])W*(?=d) ?

Ответ №1:

попробуйте это регулярное выражение —> '([^0-9]*)(.*)'

 >>> import re
>>> def foo(text):
...  result = re.search('([^0-9]*)(.*)', text)
...  return " ".join(result.groups())
... 
>>> foo("number234-456-132")
'number 234-456-132'
>>> foo("abc235-456-456")
'abc 235-456-456'
>>> foo("bhjklsds:456-133-456")
'bhjklsds: 456-133-456'
>>> 
  

Ответ №2:

Я бы попытался явно сопоставить три группы цифр в конце и включить что-нибудь еще в первую строку:

 for string in strings:
    match = re.match("(.*)(d{3}-d{3}-d{3})$", string)
    print([match[1], match[2]])