- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
Шаблон
(\$*(\d*(\.+\d+)?){1})
Шаблон замены
**$&
Вход
$1.30
Выход
**$1.30**
А теперь вопрос знатокам: Каким жестоким человеком нужно быть, что бы засунуть в пример регулярку, которая может соответствовать 0(?!) символов?
kegdan 08.08.2013 12:41 # 0
Думаю так удачнее
bormand 08.08.2013 13:57 # 0
Если да, то, имхо, достаточно вот такой регулярки: P.S. Ну и еще косяк - $$5.2 ваш код заменит на $**$5.2**.
bormand 08.08.2013 13:59 # 0
P.P.S. В строке "5." действительно лучше не оборачивать точку в звездочки, т.к. "You must pay only 5$." оттранслируется в "You must pay only **5$**.", а не в некошерное "You must pay only **5$.**"
kegdan 08.08.2013 14:54 # +1
мое понимание задачи
Регулярки полностью совпадают, но Ваша проще)
kegdan 08.08.2013 14:42 # +1
Да, я писал так, что бы после точки обязательно шло число
> \$*(\d*\.)?\d+
Да, так проще, я перемудрил)
Если честно я с регулярками второй день знаком.
>P.S. Ну и еще косяк - $$5.2 ваш код заменит на $**$5.2**.
Нет, все правильно заменяет $$5.2 на $**$5.2
Вы имеете в виду, что не все $ захватит? ну так оно и задумано)
bormand 08.08.2013 13:29 # +2
В шаблоне замены **$&** или все-таки **$&?
kegdan 08.08.2013 14:33 # +1
kegdan 08.08.2013 14:47 # +2
**m**i**c**r**o**s**o**f**t** **s**u**c**k**
bormand 08.08.2013 15:27 # 0
Да я тестил ;)
> он в конце находит совпадение длинной 0 и дописывает **
Выставили баг своей регулярки как фичу. М$ всегда так поступает ;)
> Вы имеете в виду, что не все $ захватит? ну так оно и задумано)
Ну ок, с \$? вместо \$* действительно будет логичней. Меня просто переклинило, показалось что $$ обозначают центы.
P.S. MSDN это далекооо не самое подходящее место для изучения регулярок ;)
kegdan 08.08.2013 15:45 # 0
я буквально на днях прочел
"Бен Форта - Регулярные выражения. 10 минут на урок"
чем можно дополнить?
bormand 08.08.2013 18:38 # +1
Практикой ;) Синтаксис у регулярок очень простой, разобрать и запомнить его можно буквально за пару часов, но нужно набить руку в их написании и чтении. Подумай, где бы ты хотел применить регулярку и напиши ее, потестируй на разных примерах. Еще попробуй почитать регулярки из реальных проектов, пытаясь понять, что они делают. Именно так я их и изучал.
P.S. Можно еще вот тут поиграться: http://regexcrossword.com/
kegdan 08.08.2013 18:42 # +1
и этот решил)
http://habrahabr.ru/post/175847/
Спасибо за совет)
Буду практиковаться)