#regex #insert
#регулярное выражение #вставить
Вопрос:
я чертовски нервничаю, задавая этот вопрос, поскольку там МНОГО сообщений с регулярными выражениями. но я также прошу лучший метод, поэтому я собираюсь рискнуть (полностью ожидая повторения, если я провалю работу …)
мне дали список для переформатирования. 120 вопросов и ответов (всего 240 наборов тегов). * glark * все, что мне нужно сделать, это сделать текст между тегами ссылкой, вот так:
<li>do snails make your feet itch?</li>
должно стать
<li><a href="#n">do snails make your feet itch?</a></li>`
ЭТО НЕ вопрос регулярных выражений JAVASCRIPT / PHP. это ПРОСТО регулярное выражение, которое я могу ввести в поля поиска / замены моей IDE. я, вероятно, попытаюсь выполнить пакетную замену после этого с помощью PERL, чтобы вставить 'n'
переменную, чтобы ссылки указывали правильно.
и я знаю, что вы спросите: «Если вы можете использовать PERL для этого, почему бы не использовать всю эту чушь?» и это правильный вопрос, но я хочу больше использовать регулярные выражения для больших списков, подобных этому. плюс мои навыки работы с PERL в лучшем случае отрывочны … если вы не хотите это исправить… : D хе-хе.
если на этот вопрос невозможно ответить или он не подходит для этой части форума, пожалуйста, примите мои извинения и укажите мне правильное направление.
большое спасибо!
WR!
Комментарии:
1. Ваш
n
действительно счетчик, верно? Поддерживает ли ваш заменитель регулярных выражений IDE переменные?2. ДА.
n
это счетчик. и, к сожалению, моя IDE не поддерживает переменные в заменителе, о котором я знаю . Notepadd довольно потрясающий, поэтому он вполне может быть способен, я просто могу быть слишком отсталым, чтобы знать это. : P я просто собирался запустить его с помощью быстрого скрипта PERL.3. У Диомидуса лучший ответ. Мой примерно такой же, но упакован в codepad.org/02u104FU если вы хотите попробовать это сделать….
Ответ №1:
Вы можете сделать это в два этапа.
- Замените
<li>
на<li><a href="#n">
- Замените
</li>
на</a></li>
Или вы можете попытаться быть умным, и это в одном. Вот заменяющая команда в синтаксисе Perl ($ 1 ссылается на то, что было указано в скобках).
s,<li>(.*)</li>,<li><a href="#n">$1</a></li>,
И пока вы там, легко заменить вторую часть шаблона замены выражением, которое будет увеличивать n
s,<li>(.*)</li>,q{<li><a href="#} . $n . qq{">$1</a></li>},e
Посмотрите, как вы можете запустить это из командной строки:
echo '<li>do snails make your feet itch?</li>' |
perl -pe 's,<li>(.*)</li>,q{<li><a href="#} . $n . qq{">$1</a></li>},e'
<li><a href="#1">do snails make your feet itch?</a></li>
Комментарии:
1. идеально! между вами и @Alex, я все это закончу сегодня вечером. большое вам спасибо!
2. еще лучше. черт ВОЗЬМИ! мне нравятся люди на этом сайте. побуждает меня быть все лучшим и лучшим разработчиком. : D
3. 1 очень приятно. Избили меня с помощью s // / e подхода примерно на 10 минут.
Ответ №2:
Поиск
<li>(.*?)</li>
Заменить
<li><a href="#n">$1</a></li>
Комментарии:
1. это было намного проще, чем я думал. время усилить регулярное выражение! спасибо @Alex. 🙂