Справка по сопоставлению простого регулярного выражения - PullRequest
0 голосов
/ 14 февраля 2010

Возьмите следующий URI:

http:\/\/.*\.google\.com/search/results\.php*

Я просто пытаюсь сопоставить все одиночные косые черты (/) между двумя буквенно-цифровыми символами в заданном URI. В случае выше, два непосредственно перед поиском и результатами. Не могли бы вы указать мне правильное направление?

EDIT

Целью является поиск и замена с использованием Блокнота ++.

Ответы [ 2 ]

1 голос
/ 14 февраля 2010

Http: //..google.com/search/results.php

1 голос
/ 14 февраля 2010

Не совсем уверен, что вы там делаете, поскольку ваш «URI», похоже, уже является регулярным выражением.

Но для совпадения с косой чертой (/), заключенной между буквенно-цифровыми символами, вы можете использовать:

/(?<=[a-zA-Z0-9]/)(?=[a-zA-Z0-9])

Позитивный взгляд сзади и взгляд вперед позволяют убедиться, что косая черта действительно находится между двумя буквенно-цифровыми символами.

Тест в Windows PowerShell:

PS Home:\> $uri='/1945321/spravka-po-sopostavleniy-prostogo-regulyarnogo-vyrazheniya'
PS Home:\> [regex]::matches($uri, '(?<=[a-zA-Z0-9])/(?=[a-zA-Z0-9])') | ft -auto

Groups   Success   Captures   Index   Length   Value
------   -------   --------   -----   ------   -----
{/}         True   {/}           24        1   /
{/}         True   {/}           34        1   /
{/}         True   {/}           42        1   /

ETA: Если я правильно вас понял, вы хотите заменить косые черты, вставленные между двумя буквенно-цифровыми символами, на \/, чтобы их избежать, верно?

Затем заменить следующее

([a-zA-Z-0-9])/([a-zA-Z-0-9])

от

\1\\/\2

должно работать. Это не захватывает только косую черту (как вышеописанный метод; из-за ограничений Notepad ++), поэтому мы должны также повторно вставить окружающие символы.

Тем не менее, вы, возможно, все равно захотите найти unescaped slash. Итак, заменив

([^\\])/

от

\1\\/

будет иметь больше смысла, я думаю. Это ищет косую черту, которой не предшествует обратная косая черта.

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