найти строку с форматом '[число]', используя регулярное выражение - PullRequest
2 голосов
/ 12 ноября 2010

У меня есть строка в приложении django / python, и мне нужно искать ее для каждого экземпляра [x].Это включает в себя скобки и х, где х - любое число от 1 до нескольких миллионов.Затем мне нужно заменить x своей собственной строкой.

, т. Е. 'Some string [3423] of words and numbers like 9898' превратится в 'Some string [mycustomtext] of words and numbers like 9898'

Обратите внимание, что затронуто только число в скобкахЯ не знаком с регулярным выражением, но думаю, что это сделает это для меня?

Ответы [ 3 ]

4 голосов
/ 12 ноября 2010

Regex это именно то, что вы хотите.Это модуль re в Python, вам нужно использовать re.sub, и он будет выглядеть примерно так:

newstring = re.sub(r'\[\d+\]', replacement, yourstring)

Если вам нужно сделать много, подумайте о компиляции регулярного выражения:

myre = re.compile(r'\[\d+\]')
newstring = myre.sub(replacement, yourstring)

Редактировать: Чтобы повторно использовать число , используйте группу регулярных выражений:

newstring = re.sub(r'\[(\d+)\]',r'[mytext, \1]', yourstring)

Компиляция также возможна.

1 голос
/ 12 ноября 2010

Использование re.sub:

import re
input = 'Some string [3423] of words and numbers like 9898'
output = re.sub(r'\[[0-9]+]', '[mycustomtext]', input)
# output is now 'Some string [mycustomtext] of words and numbers like 9898'
0 голосов
/ 12 ноября 2010

Поскольку здесь никто больше не прыгает, я дам вам мою не-Python версию регулярного выражения

\[(\d{1,8})\]

Теперь в заменяющей части вы можете использовать 'пассивную группу' $ n для замены(где n = число, соответствующее части в скобках).Этот будет $ 1

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