3

Допустим, у меня есть выражение регулярного выражения, использующее некоторые специальные символы, а также часть с «обычным» текстом, в котором, как оказалось, есть некоторые символы. Скажем также, что я слишком ленив, чтобы начать экранирование каждого «потенциального» специального символа в части «обычный текст».

Как я могу заключить «нормальный» текстовый бит, чтобы Regex не начинал подбрасывать, когда он думает, что натолкнулся на специальный символ (хотя на самом деле это не так)?

В качестве примера, скажем, я ищу текст:

.*Hello it's true that ([6*.5]^2=9) .

Я, конечно, не хочу кропотливо использовать escape-символ каждый раз, когда какой-либо из специальных символов появляется в этом разделе математики (или апостроф в «не»). С другой стороны, я хочу трактовать бит .* В начале как специальные символы.

Так могу ли я заключить раздел Hello it's true that ([6*.5]^2=9) чтобы Regex воспринимал его как обычный текст, а не как специальный?

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

2 ответа2

1

Попробуйте \Q чтобы начать литерал, и завершите \E

Это работает со многими разновидностями Regex, хотя Java может иметь проблемы, например.

Информация получена с: http://www.regular-expressions.info/characters.html

1

Некоторые инструменты позволяют изменить необходимость экранирования специальных символов по умолчанию. Например, vi (и клоны) имеют magic режим, который управляет этим. Это может позволить вам уменьшить количество необходимых побегов.

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