Как избежать метасимвола в регулярном выражении - PullRequest
0 голосов
/ 25 мая 2009

Язык: asp

Это пример моего кода:

str = "www.example.com/gotobuy.aspx?id=1234"
key_word = ".obuy."
Dim regEx
Set regEx = New RegExp
regEx.Pattern = key_word
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(str)
if matches.count > 0 then
    new_string =  str
    For Each Match in Matches
        new_string = replace(new_string,match.value,"")
    Next
else
    new_string = str
end if
response.write new_string

Ответ будет отображаться:

www.example.com/goaspx?id=1234

Я знаю (.) Один из мета-персонажей. Но что, если я хочу (.) Просто (.), А не какое-то одно слово. Что мне делать?

Спасибо за помощь!

Ответы [ 5 ]

3 голосов
/ 25 мая 2009

В дополнение к экранированию . с \, многие люди предпочитают использовать класс персонажей с .: [.], они находят его более эстетичным. Вы также не сталкиваетесь с проблемой нескольких уровней побега. С \ вам, возможно, придется использовать много уровней экранирования, если версия строк на вашем языке обрабатывает \ как специальный символ: "\\.".

2 голосов
/ 25 мая 2009

С. метасимвол, чтобы соответствовать '.' вам нужно сбежать, как \.

2 голосов
/ 25 мая 2009

Используйте \. для буквального соответствия ..

1 голос
/ 25 мая 2009

Вам нужно экранировать метасимволы, с которыми вы хотите обращаться буквально. В большинстве систем регулярных выражений это означает добавление перед ним обратной косой черты. например: "foo\.bar"

0 голосов
/ 25 мая 2009

Большой урок по регулярным выражениям см. http://www.regular -expressions.info /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...