Я ищу способ в Notepad ++ найти строки, не содержащие какого-либо числа, и переместить их на предыдущую строку после добавления разделителя, такого как «#».
moon 215466
sun & stars world
the sea 345454
sky @ 464654
cars 135456
school teachers
результат, который я хочу:
moon 215466#sun & stars world
the sea 345454
sky @ 464654
cars 135456#school teachers
Я новичок в регулярном выражении, поэтому я просмотрел все вопросы и попробовал ^[^\d]$ и ^\D$ и /^[^0-9]*$/, он нашел строки без номеров, но я не могу переместить их на предыдущую строку .
Спасибо
Может быть, это выражение,
(?m)(.*?@\s*\d+)\s*(.*?&.*)
с заменой
$1#$2
может сработает, хотя не уверен.
Многострочное регулярное выражение Notepad++
не работает, пишет: не могу найти текст (\w+\s*@\s*\d+)\s*[\r\n]*(\w+\s*&\s*\w+.*)
я обновил образцы. Я попробовал ваше новое выражение, оно говорит: вхождение не найдено
np спасибо @Emma за ваше время
Я думаю, что вы использовали "@" в качестве параметра, но на самом деле только некоторые из строк, которые содержат "@", общая вещь в строке содержит числа или нет
Вы можете попробовать следующее:
Если вы напишете свой текст, он будет выглядеть примерно так:
По сути, вы хотите удалить символы CR (возврат каретки) и LF (перевод строки), если за ними следует строка, не содержащая цифр. Регулярное выражение для строки, не содержащей цифр, — ^(\D*)$
. Пожалуйста, спросите, нужна ли вам помощь в понимании того, как это работает. Затем мы заменяем совпадение CR + LF + Regex на символ #\1
- #
, а \1
ссылается на содержимое первой группы захвата, что означает первый набор скобок в вашем регулярном выражении поиска (строка без цифр).
Результат:
все отлично работает спасибо
это файл содержит более 10000 строк, так что это образцы того, что я хочу сделать, а не точные слова