- 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(?!) символов?
Думаю так удачнее
Если да, то, имхо, достаточно вот такой регулярки: P.S. Ну и еще косяк - $$5.2 ваш код заменит на $**$5.2**.
P.P.S. В строке "5." действительно лучше не оборачивать точку в звездочки, т.к. "You must pay only 5$." оттранслируется в "You must pay only **5$**.", а не в некошерное "You must pay only **5$.**"
мое понимание задачи
Регулярки полностью совпадают, но Ваша проще)
Да, я писал так, что бы после точки обязательно шло число
> \$*(\d*\.)?\d+
Да, так проще, я перемудрил)
Если честно я с регулярками второй день знаком.
>P.S. Ну и еще косяк - $$5.2 ваш код заменит на $**$5.2**.
Нет, все правильно заменяет $$5.2 на $**$5.2
Вы имеете в виду, что не все $ захватит? ну так оно и задумано)
В шаблоне замены **$&** или все-таки **$&?
**m**i**c**r**o**s**o**f**t** **s**u**c**k**
Да я тестил ;)
> он в конце находит совпадение длинной 0 и дописывает **
Выставили баг своей регулярки как фичу. М$ всегда так поступает ;)
> Вы имеете в виду, что не все $ захватит? ну так оно и задумано)
Ну ок, с \$? вместо \$* действительно будет логичней. Меня просто переклинило, показалось что $$ обозначают центы.
P.S. MSDN это далекооо не самое подходящее место для изучения регулярок ;)
я буквально на днях прочел
"Бен Форта - Регулярные выражения. 10 минут на урок"
чем можно дополнить?
Практикой ;) Синтаксис у регулярок очень простой, разобрать и запомнить его можно буквально за пару часов, но нужно набить руку в их написании и чтении. Подумай, где бы ты хотел применить регулярку и напиши ее, потестируй на разных примерах. Еще попробуй почитать регулярки из реальных проектов, пытаясь понять, что они делают. Именно так я их и изучал.
P.S. Можно еще вот тут поиграться: http://regexcrossword.com/
и этот решил)
http://habrahabr.ru/post/175847/
Спасибо за совет)
Буду практиковаться)