Удалить класс span через regex в Notepad ++

478
Aman Mittal

У меня большой файл, обслуживающий до 1000+ классов для номеров страниц. Я хотел бы удалить полный синтаксис с текстом в notepad ++ через ReGex. Пример,<p>Cillacepro di to tem endelias eaquunto maximint eostrum eos dolorit et laboria estiati<span class=”pagenum”><a name=”Page_4” id=”Page_4”>[Pg 4]</a></span>Cillacepro di to tem endelias</p>

Я бы заменил <span class=”pagenum”><a name=”Page_4” id=”Page_4”>[Pg 4]</a></span>на "", чтобы он также нашел шаблон для двух и трех цифр. Я новичок в этом поиске строк регулярного выражения, поэтому я был бы благодарен, если бы кто-нибудь мог помочь мне с заменой строки для того же самого. С уважением, Аман Миттал

1
Непонятно, что вы пытаетесь найти и чем хотите его заменить, поэтому я предлагаю вам взглянуть на [этот учебник] (http://docs.notepad-plus-plus.org/index.php/Regular_Expressions) , AFH 5 лет назад 0
Привет, спасибо за ответ. Я просто пытаюсь заменить [Pg 4] пробелом. Я ищу строку поиска регулярного выражения, которая удаляет все номера страниц одновременно, чтобы мне не пришлось вручную удалять каждый синтаксис один за другим. Aman Mittal 5 лет назад 0
Я полагаю, что соответствие ` . *? `будет достаточно, поскольку только этот класс span может содержать данные номера страницы, которые вы хотите удалить. Обратите внимание, что `. *?` Будет соответствовать минимальному количеству произвольных символов, гарантируя, что `` в совпадении сопряжено с тем же ведущим ` `. AFH 5 лет назад 1
Большое спасибо за то, что нашли время и предоставили решение. Это творило чудеса для меня. Я слишком благодарен тебе. Большое спасибо! Будьте благословенны! Aman Mittal 5 лет назад 0
@AFH Хотелось бы, чтобы мне понравился твой профиль и чтобы все знали, какой ты замечательный человек. Большое спасибо! Aman Mittal 5 лет назад 0
@AFH: Извините, что беспокою вас снова. Но в моем проекте я использую другой тип номера страницы: [pg 001] Я попробовал этот код, чтобы найти их все сразу: [pg \ d + \]Тем не менее, это не похоже на работу. Не могли бы вы сообщить мне об ошибках в поиске регулярных выражений? Я был бы вам очень признателен. Aman Mittal 5 лет назад 0
Кроме того, если я хотел бы найти римское число - i, ii, iii ... в том же регулярном выражении, то как бы я поступил? Aman Mittal 5 лет назад 0

2 ответа на вопрос

1
alzaj

экранируйте квадратные скобки и используйте цифру-сокращение ("/ d"), за которым следует знак повторения "+", чтобы соответствовать номерам страниц:

<span class="pagenum"><a name="Page_\d+" id="Page_\d+">\[Pg \d+\]</a></span> 

Вы можете проверить приведенное выше регулярное выражение на следующем примере кода:

placeholdertext<span class="pagenum"><a name="Page_4" id="Page_4">[Pg 4]</a></span>placeholdertext placeholdertext <span class="pagenum"><a name="Page_111" id="Page_111">[Pg 111]</a></span> placeholdertext<span class="pagenum"><a name="Page_222" id="Page_222">[Pg 222]</a></span> 
Большое спасибо за то, что нашли время и предоставили решение. Он специфичен для Page_1 и не работает для Pg_1, но мы всегда можем настроить регулярное выражение. Большое спасибо за помощь. Ваше решение очень помогло. Я слишком благодарен тебе. Большое спасибо! Будьте благословенны! Aman Mittal 5 лет назад 0
Пожалуйста! Еще одно преимущество решения @AFH: его регулярное выражение совпадает, если внутри тега span есть разрыв строки (флажок «точка соответствует новой строке» в Notepad ++). Но решение AFH также может иметь недостаток, если ваш тег span будет содержать вложенный тег span. alzaj 5 лет назад 0
@alzaj - я никогда не видел вложенных тегов ` ` и, хотя разрешено, они очень маловероятны при нумерации страниц, если только номер страницы не является самым внутренним, что не повлияет на мою строку соответствия. Я должен был упомянуть проверку _` соответствует newline`_: спасибо, что указал на это. AFH 5 лет назад 1
@alzaj - Извините, что беспокою вас снова. Но в моем проекте я использую другой тип номера страницы: [pg 001]Я попробовал этот код, чтобы найти их все сразу: [pg \ d +]Тем не менее, это не похоже на работу. Не могли бы вы сообщить мне об ошибках в поиске регулярных выражений? Я был бы вам очень признателен Aman Mittal 5 лет назад 0
Кроме того, если я хотел бы найти римское число - i, ii, iii ... в том же регулярном выражении, то как бы я поступил? Aman Mittal 5 лет назад 0
@AFH Просим вас помочь мне еще раз, если это возможно. Буду очень признателен за ваше драгоценное время и опыт. Aman Mittal 5 лет назад 0
Используя [этот сайт] (https://regex101.com/), я смог увидеть, что проблема заключается в квадратных скобках, которые нужно экранировать, чтобы они были сопоставлены буквально (`\ [` и `\]`); в противном случае они рассматриваются как разделение набора символов при совпадении одного символа. Обратите внимание, что нет точного соответствия для NotePad ++, но я смог использовать аромат "golang". Для римских цифр вы просто заменяете `\ d +` на `. +`: Это означает, что существует возможность сопоставления нечислового номера страницы, но я не могу представить, что это произойдет. Вы можете ужесточить критерии с помощью `[0-9ivxdm] +`. AFH 5 лет назад 2
@AFH Спасибо, что уделили время и ответили на запрос. Я чрезвычайно благодарен вам за то, что вы мне очень помогли. Что касается регулярного выражения span, регулярное выражение работало после включения скобок, а не после удаления. Более того, твой трюк `. +` Хорошо сработал для римских чисел. Для поиска ` [pg ix]`Я использовал это регулярное выражение, и оно творило чудеса` \ [pg. + \]` Aman Mittal 5 лет назад 0
@AFH Большое спасибо за помощь. Потрясен и благодарен! Желаю вам всегда оставаться счастливыми и счастливыми! Aman Mittal 5 лет назад 0
1
Aman Mittal

Хотелось бы поблагодарить @AFH за предоставленный общий ответ, который мог бы обслуживать Page, Pg и другие типы. Я полагаю, что сопоставления <span class="pagenum">.*?</span>будет достаточно, поскольку только этот класс span может содержать данные номера страницы, которые вы хотите исключить. Обратите внимание, что .*? будет соответствовать минимальному количеству произвольных символов, гарантируя, что в совпадении в паре с одинаковыми ведущими. - AFH 12 часов назад

Я также хотел бы поблагодарить @alzaj за правильное направление. Большое спасибо! Спас мой день и усилия! С уважением, Аман Миттал