2015-03-02 3 views
0

Мне нужно просмотреть файл и заменить все экземпляры, где упоминается проблема с использованием соглашения Github #xxx (где xxx - номер проблемы) со ссылкой на проблему с использованием формата Markdown.Заменить номер с текстом с помощью регулярного выражения

Так, например, это:

#143, #99 

должны быть преобразованы в это:

[#143](https://github.com/repo/issues/143), [#99](https://github.com/repo/issues/99) 

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

#..[0-9] 

, но это выходит из двух или одной проблемы цифр (например: #5 или #23)

Есть ли способ обобщить приведенную выше команду, чтобы выбрать все проблемы, независимо от того, сколько у них цифр?

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

ответ

1

Вам необходимо регулярное выражение #(\d+) и заменить [#$1](https://github.com/repo/issues/$1)

+0

Первое регулярное выражение для меня не работает Amit, он ничего не выбирает. – Gabriel

+0

Второй тоже не работает, номер заменяется на '[#] (https://github.com/repo/issues/)'. Я использую Sublime BTW, не уверен, что это актуально. – Gabriel

+1

@Gabriel попробуйте сейчас. Вам не нужны разделители, которые я использовал в Sublime –

2

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

#[0-9]{1,3} 

в соответствии с проблемой # от 1 до 3-х цифр, [0-9]{1,3} будет соответствовать число, которое составляет от 1 до 3 в длину.

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

#[0-9]+\b 
+2

хорошо выглядит, как вы избили меня :) – blackmind

+0

Это отлично подходит для выбора вопросов, спасибо anubhava! Любая идея, как я могу заменить их на правильную ссылку на уценку? – Gabriel

+0

Вы должны сопоставить '# ([0-9] +) \ b' и заменить его на:' [$ 0] (https://github.com/repo/issues/$1) 'Где' $ 0' и '$ 1' являются обратными ссылками на согласованные данные. – anubhava

1

Попробуйте это регулярное выражение для того, что вы пытаетесь сделать

#[0-9]{1,3} 
Смежные вопросы