Regex вопрос относительно одного символа - PullRequest
1 голос
/ 06 мая 2011

Я хотел бы использовать регулярное выражение для замены одного символа в URL.

URL-адрес ниже:

http://www.example.com/e343/Product.html

Я хотел бы использовать регулярное выражение для замены любого символа, который являетсяне "t" после первого слэша.В данном случае используется буква "e"

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

Ответы [ 4 ]

3 голосов
/ 06 мая 2011
([^/]+//[^/]+/)([^t])


$1 = before your inalid character
$2 = the char 'e', ot anything other than 't'

В зависимости от вашего парсера вам может понадобиться экранировать / символов до \ /

1 голос
/ 06 мая 2011

Для этого вы можете использовать функцию REReplace в CF MX. Основная идея состоит в том, чтобы создать регулярное выражение, которое помещает все , за исключением символа, который вы хотите заменить, в группы захвата, и используйте обратные ссылки, чтобы сохранить их в строке замены. Что-то вроде:

REReplace(url, "(^http://[^/]*/)([^t])(.*)", "\1t\3", "ONE")

Если первый символ после вашего первого / является символом t, все регулярные выражения не будут совпадать, и ничто не будет заменено.

0 голосов
/ 07 мая 2011
<cfset address = 'http://www.domain.com/e343/Product.html' />
<cfset updated = reReplaceNoCase(address, '(\w/)[^t]?', '\1') />
<cfoutput>#updated#</cfoutput>

Результат

http://www.domain.com/343/Product.html

Всегда находит первую косую черту, которой предшествует буква, а также включает в себя букву после косой черты, если это не 't'. Затем он заменяет совпадение на все, кроме буквы, отличной от 't'.

0 голосов
/ 06 мая 2011

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

http://txt2re.com/

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