Мне нужно регулярное выражение, которое будет проверять полный комплексный почтовый индекс Великобритании только во входной строке. Все необычные формы почтовых индексов должны быть покрыты так же, как и обычные. Например: Спички CW3 9SS SE5 0EG SE50EG se5 0eg WC2H 7LT Не совпадает AWC2H 7LT WC2H 7LTa WC2H Как мне решить …
Как я могу заменить foobarна foo123bar? Это не работает: >>> re.sub(r'(foo)', r'\1123', 'foobar') 'J3bar' Это работает: >>> re.sub(r'(foo)', r'\1hi', 'foobar') 'foohibar' Я думаю, что это общая проблема, когда есть что-то подобное \number. Кто-нибудь может дать мне подсказку о том, как справиться с этим?
В Python (?P<group_name>…) синтаксис позволяет ссылаться на совпавшую строку через ее имя: >>> import re >>> match = re.search('(?P<name>.*) (?P<phone>.*)', 'John 123456') >>> match.group('name') 'John' Что означает "P"? Я не смог найти ни одного намека в официальной документации . Я хотел бы получить идеи о том, как помочь моим студентам …
Я пытаюсь разобрать следующий вид строки: [key:"val" key2:"val2"] где есть произвольный ключ: пары "val" внутри. Я хочу получить имя ключа и значение. Для любопытных я пытаюсь разобрать формат базы задач воина. Вот моя тестовая строка: [description:"aoeu" uuid:"123sth"] это означает, что в ключе или значении может быть что угодно, кроме пробелов, …
У меня есть список слов: bau ceu diu fou gau Я хочу превратить этот список в: byau cyeu dyiu fyou gyau Я безуспешно попробовал команду: :%s/(\w)(\w\w)/\1y\2/g Учитывая, что это не работает, что мне нужно изменить, чтобы группы захвата регулярных выражений работали в Vim?
Я использую rubular.com для создания своего регулярного выражения, и их документация описывает следующее: (...) Capture everything enclosed (a|b) a or b Как я могу использовать выражение ИЛИ, не записывая, что в нем содержится? Например, скажем, я хочу захватить либо «ac», либо «bc». Я не могу использовать регулярное выражение (a|b)(c) право? …
Есть ли способ напрямую заменить все группы с помощью синтаксиса регулярных выражений? Обычный способ: re.match(r"(?:aaa)(_bbb)", string1).group(1) Но я хочу добиться чего-то вроде этого: re.match(r"(\d.*?)\s(\d.*?)", "(CALL_GROUP_1) (CALL_GROUP_2)") Я хочу мгновенно создать новую строку из групп, только что захваченных Regex.
У меня есть этот код, и я хочу знать, могу ли я заменить только группы (не весь шаблон) в регулярном выражении Java. Код: //... Pattern p = Pattern.compile("(\\d).*(\\d)"); String input = "6 example input 4"; Matcher m = p.matcher(input); if (m.find()) { //Now I want replace group one ( (\\d) …