Использование Notepad++ Regex для удаления якорей

Использование Notepad++ Regex для удаления якорей

Я пытался искать другие ответы на этот вопрос, но мой мозг просто взрывается, когда я пытаюсь прочитать что-либо о Regex. Я просто не могу это понять, независимо от того, сколько раз я это читаю или как медленно это делаю.

Я пытаюсь удалить это из файла с помощью Notepad++:

<a style="text-decoration:none" href="/SOME RANDOM WORD">.</a>

Но я не уверен, какую строку поиска регулярного выражения мне нужно использовать в Notepad++, чтобы сделать это. Там, где есть SOME RANDOM WORD, это может быть буквально что угодно любой длины, но начало и конец тега / страницы, на которой он находится, одинаковы.

Я просто хочу удалить все экземпляры

<a style="text-decoration:none" href="/SOME RANDOM WORD">.</a>

и заменить его ничем.

решение1

В строке «Найти» введите следующее:

<a style="text-decoration:none" href=".+">\.</a>

Заменить на: оставить пустым.

Затем нажмите «Заменить все».

Ключевым моментом здесь является использование .+which означает, найти один символ чего-либо или более. Это в основном означает, что любой url, который имеет текст, идентичный, но с любым url, будет найден и заменен. ничем. Можно отфильтровать url или другие вещи, но, учитывая, что в вашем сообщении указано, что вы хотите заменить всю строку ничем, эта информация не была предоставлена, чтобы не запутывать вас еще больше.

Убедитесь, что вы выбрали «Регулярное выражение» внизу, но я думаю, вы уже об этом подумали.

Кроме того, вам придется экранировать специальные символы, такие как . Если в ваших ссылках есть фактический текст вместо ., вам также придется заменить его \.на .+.

решение2

Я отправляю еще один ответ не потому, что хочу поставить под сомнение принятый ответ, который очень хорош, а потому, что ваше поисковое выражение оказалось почти верным.

Путаница в том, что в масках файлов *означает произвольную строку любой длины (включая ноль), тогда как в регулярных выражениях это означает любое количество вхождений предыдущего шаблона. Так что вы просили строку, содержащую любое количество слешей (только) между кавычками в предложении href=.

То, что вам было нужно, было href="/.*"в вашем выражении поиска, и это использует другое большое различие между масками файлов, где ?соответствует любому отдельному символу, и регулярными выражениями, где .используется , задавая .*любое количество произвольных символов.

Различное использование .означает, что >.</a>в конце вашего поискового выражения означает, что любой символ между >и </a>будет соответствовать: чтобы соответствовать только литералу, .вам нужно сообщить поисковому выражению, что вы хотите сопоставить его с литералом ., и вы делаете это, поставив перед .так называемымпобегсимвол \. Таким образом \.соответствует литералу .и \*соответствует литералу *.

Ваша строка поиска работала бы идеально, если бы регулярные выражения использовали те же соответствия, что и маски файлов, но, к сожалению, это не так, и вам нужно следующее:

<a style="text-decoration:none" href="/.*">\.</a>

Как видите, это мало чем отличается от того, что вы пробовали, только с двумя дополнительными (но важными) символами, но я надеюсь, что мое объяснение придаст вам уверенности, чтобы заняться ими дальше: они вам обязательно понадобятся снова.

Я не могу отрицать, что они отталкивающие, и я не могу рекомендовать легкий путь, хотя вы можете обнаружить,этот тестерполезно (хотя он рассматривается /как специальный символ, которому должен предшествовать экранирующий символ \— в некоторых контекстах так и есть, но не в вашем, так что учтите это, если попробуете использовать его в выражении поиска).

Не пугайтесь, если выражения покажутся вам бессмысленными: я работаю с ними уже много лет, и многие из них все еще для меня непонятны, особенно проверка двоичных чисел, кратных 3 вСтраница Википедии- Я нашел объяснения, но даже имея степень по математике, я не могу понять это выражение в деталях.

Вы понимаете маски файлов и, используя простые модификации, необходимые для регулярных выражений, у вас есть отправная точка.

Связанный контент