| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Добавить условия в строку рег. выражения |
| Автор: NickG 12.7.2007, 18:29 |
| Вопрос вот в чем.. правило для обработки строки(java regex) формируется с помощью мастера... ну к примеру: нужная строка начинается с такой-то строки и заканчивается на такую-то - начало.*конец (выберет строку между этими двумя) как теперь к данному рег. выражению добавить условия типа строка содержит такие-то символы или не содержит? |
| Автор: shamber 12.7.2007, 23:29 |
| NickG, (java regex) вы точно веткой форума не ошиблись? |
| Автор: NickG 13.7.2007, 00:09 |
| нет ну так как бы это было на perl? просто: а) регулярные выражения - это стихия perl(а) б) ява в этом плане похожа на перл сильно или я не прав? в) очень специфическая тема |
| Автор: Nab 13.7.2007, 00:24 |
| Тогда, NickG, давайте конкретно, показуйте примеры своих строк и подробненько что должно получиться... |
| Автор: NickG 13.7.2007, 00:43 |
| о_О ну к примеру: есть строка "1 н2 3 б4 а5 6" мне нужно одним регулярным выражением пройти такие условия: 1)данная строка начинается на "н2" и заканчивается на "а5" 2) данная строка имеет подстроку к примеру "н2" 3) данная строка не содержит строку "к10" и в результате я получаю "н2 3 б4 а5" я так понял мне нужно логическое И реализованное не языком программирования, а в регулярном выражении |
| Автор: NickG 13.7.2007, 00:59 |
| хотя, хотя..... можно вставить в рег. выражение какие-то свои символы разделения.... (И)... и потом при обработке делить строку с выражением на части... но все же одной строкой - конечный результат |
| Автор: amg 13.7.2007, 09:46 | ||||||
| NickG, все равно не совсем понятно, что нужно (А., Б. или В.). Начнем с того, что переформулируем условие 2) на 2) данная строка имеет подстроку к примеру "б4" т.к. в твоей формулировке оно просто лишнее. А. Проверить строки на соответствие условию 1) И 2) И 3)
Кстати, будет еще понятнее (и быстрее работать), если разбить условие 1) на два:
Б. В строке выделить подстроку, удовлетворяющую условию 1) И 2) И 3) Вот здесь составление сложного регулярного выражения, включаюшего все условия, IMHO, оправдано.
В. Из строки убрать лишнее, чтобы получилась строка, удовлетворяющую условию 1) И 2) И 3) Не вижу способа сделать это одним регулярным выражением |
| Автор: nitr 13.7.2007, 12:20 |
| NickG, если вы так и будете "задавать вопрос не по существу - тем более по правилам форума ("сути нет")", то вам не помогут, здесь не телепатируют ;) А ещё могут посоветовать учить "матчасть"/RTFM и т.д. Вы более точнее укажите - что у вас не получается, что необходимо сделать. Так как, то что вы тут пишите - это невопрос, это больше смахивает на "обучение". Так google.com, Библиотеки. Азы составления "регулярных выражений" описаны ОЧЕНЬ ДОСТУПНО!!! |
| Автор: Nab 13.7.2007, 16:22 | ||
| amg, верно написал, я скажу немного по другому, одновременное утверждение что должно быть, и чего не должно быть, в одной регулярке можно реализовать, но достаточно сложно.... лучше это делать через две регулярки
Второе: перечисление символов которые могут находиться относиться только как правило к поримитивам, к подстрокам это сложнее применять. И как сказал nitr, вам бы немного подучиться потому что н2 в вашем случае не начало строки, а начало подстроки, вы сильно путаете терминологию и запутываете отвечающих... И вообще рекомендую вдуматься в мою подпись... |