Регулярное выражение для определенного количества символов - PullRequest
2 голосов
/ 28 марта 2011

Я пытаюсь изменить много URL-адресов с помощью TextWrangler, те, которые заканчиваются на m.htm, должны потерять m, но только если общее количество символов в имени файла равно 7. Те, у которых меньше символов, не должныизменилось.

Я пробовал

/.*?{7}m.htm/

, но это не работает ...

Какое решение?

Ответы [ 2 ]

2 голосов
/ 28 марта 2011

Заменить

href="([^"]*)\/(.{6})m.htm([^"]*)"

Значение: href=", за которым следует любой не " символ до / (последний - лучше: жадный), затем 6 символов, затем m, затемлюбой не " символ.

По

href="\1\/\2.htm\3"

Значение:

\1 = [^"]*
\2 = .{6}
\3 = [^"]*

Пример

<a href="google.com/foo/bar/urzadjm.htm">testM</a> 
\1 : google.com/foo/bar
\2 : urzadj
\3 : <empty>

Если файлы могут быть htm и php, предлагаю заменить .htm на (.htm|.php) (! Предупреждение об изменении обратных ссылок в числах!)

0 голосов
/ 28 марта 2011

Может быть

/\b.{6}m\.htm/

То есть начиная с границы слова, за которой следуют любые 6 символов, за которыми следует m.htm.

...