| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Регулярные выражения > подскажите регулярку. |
| Автор: boostcoder 1.4.2011, 22:28 | ||
| всем доброго вечера. подскажите с регуляркой. я в них вообще не разбираюсь... какой тип регулярок?... эм.. вопрос однако. пример:
в общем нужна регулярка для поиска hex значений, и десятичных, в соответствии с синтаксисом Си. спасибо. |
| Автор: gcc 1.4.2011, 23:06 | ||
| boostcoder, а что такое hex? это так?
|
| Автор: boostcoder 1.4.2011, 23:08 |
0x65, 0x45, и т.д.. |
| Автор: froex 1.4.2011, 23:22 | ||
|
| Автор: boostcoder 1.4.2011, 23:55 | ||
в общем методом тыка, и подсказок, получил такое выражение:
недостаток в том, что если к hex`у дописать что-нибудь, то hex все равно совпадает. а не должен. |
| Автор: alezzz 2.4.2011, 12:02 |
| boostcoder, зачем нужны пара пустых скобок в начеле и конце выражения? |
| Автор: boostcoder 3.4.2011, 12:38 |
| alezzz, я не знаю. так в коде записаны другие регулярки. |
| Автор: alezzz 3.4.2011, 15:47 |
| тогда покажите случай когда к hex что-то дописано и выражение совпадает, что именно там дописано? на каком языке реализуете регулярку (какой библиотекой), ведь не на перле? |
| Автор: alezzz 3.4.2011, 16:47 | ||
это не совсем строка по логике регулярного выражения, тут должно было совпасть "0x56a". попробуйте в таком виде: '()(\\b0x[0-9A-Fa-f]{1,}\\b)()' и если заработает, то попробуйте еще и без пустых скобок в начале/конце выражения |
| Автор: boostcoder 3.4.2011, 16:55 |
да. но учитывая что есть еще и символ 's' - это строка. т.е. нужно чтоб регулярка понимала что это не hex. попробовал. еще регулярку для десятичных изменил так "'()(\\b[0-9]{1,}\\b)()'", и все стало как надо http://liveworkspace.org/code/1caef5d7c1f59ff90c6c0b644928c91a спасибо. |