Visual Studio сообщает, что «указанный текст не был найден», но только при выполнении команды «Заменить?». - PullRequest
1 голос
/ 03 мая 2011

Я пытаюсь заменить это:

:b:b:b:b:b:b:b:bvoid Page_Load\(\)\n:b:b:b:b:b:b:b:b\{\n:b:b:b:b:b:b:b:b:b:b:b:b

этим

:b:b:b:b:b:b:b:bvoid Page_Load\(\)\n:b:b:b:b:b:b:b:b\{\n:b:b:b:b:b:b:b:b:b:b:b:bmyclass.dateclass.activite\(Request.ServerVariables\[\"LOGON_USER\"\].Split\('\\\\'\)\[1\], Request.Url.AbsoluteUri\);\n:b:b:b:b:b:b:b:b:b:b:b:b

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

Вот пример моего кода

        //Affichage de la page 
    void Page_Load()
    {
        myclass.dateclass.activite(Request.ServerVariables["LOGON_USER"].Split('\\')[1], Request.Url.AbsoluteUri);
        java.Text = "<script language=\"JavaScript1.2\" type=\"text/javascript\">var sess = \"" + Session["username"] + "\";var user = \"" + Request.ServerVariables["LOGON_USER"].Replace("\\", "\\\\") + "\";</script>";
        Session.LCID = 3084; //Utilise des dates en format AAAA-MM-JJ

1 Ответ

3 голосов
/ 03 мая 2011

Вам не нужно экранировать круглые скобки или кавычки при использовании их в строке замены, а также не распознаются определенные коды символов, включая :b.

Во-первых, измените строку поиска на эту (фигурные скобки вокруг внешней стороны - это собственный особый способ VS определить группу захвата):

{void Page_Load.+\n[^\{]+\{}

Затем измените строку замены на эту (обратите внимание на \1 для ссылки на группу захвата в замене).

\1\nmyclass.dateclass.activite(Request.ServerVariables\["LOGON_USER"\].Split('\\\\')\[1\], Request.Url.AbsoluteUri);\n

Ошибка " в следующем указанном тексте не найдена ", которую Visual Studio возвращает вам, на самом деле ошибочна - это проблема с замещающей строкой, а не с искомой строкой.

Вероятно, стоит загрузить что-то вроде этого Поиск и замена в Regex , чтобы избавить вас от головной боли, связанной с причудливым синтаксисом регулярных выражений в Visual Studio.

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