Замените строку на две строки, используя регулярное выражение - PullRequest
2 голосов
/ 11 июня 2019

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

<td><a href="/a/b/?v=d-e-2002-01-26&amp;id=13990" class="e_l">A B</a></td>

Я бы хотел заменить все внутри href= на href="#"

Ответы [ 5 ]

4 голосов
/ 11 июня 2019

Просто используйте шаблон href="[^"]+

Пояснение:

href=" соответствует href=" буквально

[^"]+ - соответствует одному или нескольким символам, отличным от "

Затем замените его на href="#

Демо

3 голосов
/ 11 июня 2019

Здесь мы, вероятно, можем использовать весь наш ввод с помощью выражения, похожего на:

(.+href=")(.+?)(".+)

, которое имеет три группы захвата, и затем мы заменим его на:

$1#$3

Демо

2 голосов
/ 11 июня 2019
  • Ctrl + H
  • Найти что: \shref="\K[^"]+
  • Заменить на: #
  • check Обтекание
  • check Регулярное выражение
  • Заменить все

Объяснение:

\s          # 1 space
href="      # literally href="
\K          # forget all we have seen until this posiiton
[^"]+       # 1 or more any character but double quote

Дано:

<td><a href="/a/b/?v=d-e-2002-01-26&amp;id=13990" class="e_l">A B</a></td>
<td><a href="/a/b/?v=d-e-2002-01-26&amp;id=13990" class="e_l">A B</a></td>

Результат для данного примера:

<td><a href="#" class="e_l">A B</a></td>
<td><a href="#" class="e_l">A B</a></td>

Снимок экрана:

enter image description here

2 голосов
/ 11 июня 2019

Это будет работать.

/ S - любой символ, кроме пробела.

Найдите это: href = "[\ S] +"

Заменить на: href = "#"

<td><a href="/home">A B</a></td>
<td><a href="/a/b/?v=d-e-2002-01-26&amp;id=13990">A B</a></td>
<td><a href="/a/b/?v=d-e-2002-01-26&amp;id=13990" class="e_l">A B</a></td>
0 голосов
/ 11 июня 2019

Вы можете использовать следующее регулярное выражение: href=\".+?(?<=\")

См. Пояснение к regex101 ...

Вы можете ввести регулярное выражение в поле Find what: и href="#" в поле Replace with:, чтобы заменить их. Также проверьте Regular expression Search Mode.

...