15

Я пытаюсь отойти от TextPad, и я просто не могу заменить регулярные выражения, такие как ^ и $ . Я определенно поставил галочку в поле регулярного выражения.

Что я делаю неправильно?

Я пытаюсь найти начало новой строки. В TextPad это найти '^' и убедиться, что регулярные выражения включены. С Notepad++ это не так. Это просто говорит "Не найдено".

6 ответов6

24

^ и $ являются якорями в Regex, что означает, что если вы хотите заменить буквенные символы ^ и $ вам нужно их экранировать, обычно с обратной косой чертой (\^ и \$).

Чтобы найти первый символ в строке, используйте ^.

Якорь начальной строки (^) - это совпадение с нулевой шириной, поэтому объедините его с. найдет любой символ в начале строки.

Может быть, вы можете объяснить, что вы на самом деле пытаетесь сделать?

8

Потому что это специальные символы, которые представляют переднюю часть (^) и конец строки ($). Попробуйте убежать от них с помощью \ .

Примеры:

Совпадение "Кошка" в начале строки:

^Cat

Совпадение "Кот" в конце строки:

Cat$

Подходим "Кошка" как единственное на линии:

^Cat$

Сопоставьте «100 долларов» в строке:

\$100 

Вот ссылка на особенности соответствия регулярных выражений в Notepad++.

5

У меня тоже была такая же проблема. После некоторых проб и ошибок вы можете добиться того же, выполнив следующие действия:

Найти: ^(.)

Заменить: [строка, которую вы хотите вставить]\1

Для этого нужно найти и пометить первый символ строки, вставить новую строку и поставить после нее помеченный символ.

Например, мне нужно было вставить одну кавычку в начале каждой строки:

Найти: ^(.)

Заменить: '\1

Вы можете сделать то же самое для конца строки, выполнив:

Найти: (.)$

Заменить: \1 * [строка, которую вы хотите добавить] *

1

Вот как это сделать ...

До:

$_GET['id']; $_GET['nick'];

После:

htmlentities($_GET['id']); htmlentities($_GET['nick']);

Так. В поле поиска введите:

$_GET(.*])

На поле замены поставьте:

htmlentities($_GET\1)
1

Я понял.

До

  • Albert@hotmail.com
  • Lucas@gmail.com
  • Rober_Klein@aol.com
  • Fisher@zmail.com

После

  • Альберт
  • Лукас
  • Rober_Klein
  • рыболов

Удалить после символа или текста

@(.*)$

Удалить перед символом или текстом

^(.*)@

dot = any character
asterisk = zero or more times
0

Проблема, кажется, была решена сейчас.

В Notepad++ v6.9.2 (работает под Windows 7) я получаю ^ (начало строки) и $ (конец строки) для работы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .