Имя: Пароль:
IT
 
Маленький вопрос по регулярным выражениям
0 Сниф
 
27.10.16
14:32
Есть расширение для Google Chrome "Поиск и замена текста". В поле поиска можно ввести регулярное выражение.

Я хочу найти слова, начинающиеся на угло* (угловой, угловые, угловых и т.п.) и заменить их на слово Angular.  Как задать регулярное выражение?

Если в виде угло*, то находит, но не обрабатывает слово до конца. То есть меняет "уголвых" на "Angularых".
1 Волшебник
 
модератор
27.10.16
14:34
Сделать N замен
2 Timon1405
 
27.10.16
14:48
интересно, как должно отработать слово "гуглофон"
3 AceVi
 
27.10.16
14:54
(2) Пропустить конечно же вот если бы было вот так *угло* то заменил бы.
4 Сниф
 
27.10.16
14:58
(1) Расширение берет начало в найденном слове и меняет именно найденное начало, а не все слово. Вот в этом проблемка.
5 Nuobu
 
27.10.16
15:02
(4) Напиши своё расширение.
6 Кирпич
 
27.10.16
15:04
если так?
[уУ]гло[^\s\.,!?;]+
7 Кирпич
 
27.10.16
15:06
или так
[\s]?[уУ]гло[^\s\.,!?;]+
8 Сниф
 
27.10.16
15:08
(6) Да, отлично, спасибо!

Это я с помощью расширения ImTaranslator перевожу английский тест (перевод вставляется за оригинальным текстом и выделяется цветом). В целом качество хорошее, но некоторые ляпы просто глаз режут.
9 Сниф
 
27.10.16
15:11
(8) *ImTranslator
10 Timon1405
 
27.10.16
15:21
а (6) сработает для "круглосуточный"?
11 Сниф
 
27.10.16
15:42
(6) Как это вообще можно запомнить - скобочки, закорючки..
12 Волшебник
 
модератор
27.10.16
15:56
(11) Это регулярные выражения, детка
13 Кирпич
 
27.10.16
16:24
(10) вот так будет нормально
(?:\s|^)угло[^\s.?,!]+
14 Timon1405
 
27.10.16
16:50
(13) В шаблон попадает пробел перед словом, так что строка
"угловой угловой" заменится на AngularAngular
ps вместо [^\s.?,!] можно писать [\S]
15 Кирпич
 
27.10.16
17:00
(14) ну это всё тонкости. у меня [^\s.?,!] и [\S] не одно и то же
16 Лефмихалыч
 
27.10.16
17:35
\sугло\w+
17 Мойдодыр
 
27.10.16
18:20
\w+ не выделяет до конца строки
18 Мойдодыр
 
27.10.16
18:21
19 Сниф
 
27.10.16
21:28
(18) Хороший инструмент
20 Лефмихалыч
 
27.10.16
21:39
(17) забыл, что \w с кириллицей не везде дружит.

угло[A-z|А-я|0-9]+

результат обработки через vbscript.regexp:
https://i.imgur.com/D72Pb26.png
21 Кирпич
 
27.10.16
23:56
(20) палки лишние наверное
угло[A-zА-я0-9]+
22 Timon1405
 
28.10.16
09:27
20,(21) ну неправильно же! см (6) слово "круглосуточный".
регулярное выражение должно совпадать там где нужно, и не совпадать там где не нужно, а в этом случае выдаст лишнее совпадение, хотя в условии есть фраза "НАЧИНАЮЩИЕСЯ на угло"
(13) предлагаю вариант (?<!\w)угло[^\s.?,!]+
Программист всегда исправляет последнюю ошибку.