Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > регексп


Автор: Karadul 13.11.2012, 04:25
Код

    public static void main(String[] args) {
        
        String regex = "3";
        String str = "3";
        System.out.println(Pattern.matches(regex, str));
        Matcher m;
        System.out.println(m = Pattern.compile(regex).matcher(str));
        System.out.println(m.start() + "" + m.end());
        
    }


Код

Exception in thread "main" java.lang.IllegalStateException: No match available
    at java.util.regex.Matcher.start(Unknown Source)
    at regexp.matcherTest.main(matcherTest.java:18)
true
java.util.regex.Matcher[pattern=3 region=0,1 lastmatch=]



Почему не находит??

Автор: Stolzen 13.11.2012, 09:03
Попробуйте вызвать m.find() перед этим

Автор: Karadul 13.11.2012, 17:26
Какой ущербный апи регекспов в яве.

Автор: Pawl 14.11.2012, 21:44
Цитата(Karadul @  13.11.2012,  17:26 Найти цитируемый пост)
Какой ущербный апи регекспов в яве.

Прошу прощения за оффтоп, но, "если Вас от нее так тошнит, почему же тогда Вы с ней спите?" smile 

Автор: Karadul 15.11.2012, 18:30
Потому что надо?

Раз уже апнули тему - почему ява допускает такой косяк? Почему не бросать исключение, если find() не был вызван, или изменить апи так, чтобы проблема, что что-то не вызвали, не возникала?

Автор: aleksandy 23.11.2012, 09:01
Цитата(Karadul @  15.11.2012,  18:30 Найти цитируемый пост)
Почему не бросать исключение, если find() не был вызван

А вот это?

Цитата(Karadul @  13.11.2012,  04:25 Найти цитируемый пост)
Код

Exception in thread "main" java.lang.IllegalStateException: No match available
    at java.util.regex.Matcher.start(Unknown Source)
    at regexp.matcherTest.main(matcherTest.java:18
)


Все непонимание из-за нежелания читать http://docs.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html#start%28%29, в которой описаны возможные исключения.

Автор: Karadul 5.12.2012, 22:21
И попробуй пойми что ей надо. Почему не написать "ты же find не вызвал"?

Как-то влом из-за такого элементарного кода сразу читать талмуды. Да и вообще код переусложненный по сравнению с питоновским re.match(regexp, string). Нафига такой делать?

Автор: LSD 6.12.2012, 09:49
Цитата(Karadul @  5.12.2012,  23:21 Найти цитируемый пост)
Нафига такой делать?

Я бы объяснил, но поскольку для тебя даже JavaDoc из пары строк, это талмуд. То думаю и объяснение будет "многабукаф ниасилил".

Автор: Karadul 6.12.2012, 13:32
Все относительно. Для регекспа 3 вызова вместо одного - это в 3 раза больше smile

Автор: Stolzen 6.12.2012, 14:45
Вас на джаве никто силой не держит - на питоне работы тоже хватает. 

Автор: LSD 6.12.2012, 17:10
Цитата(Karadul @  6.12.2012,  14:32 Найти цитируемый пост)
Все относительно. Для регекспа 3 вызова вместо одного - это в 3 раза больше

Если бы не ленился читать документацию, то нашел бы:
Код

String text = "12345";
logger.info("'{}' is {}digit", text, text.matches("\\d+") ? "" : "not ");

Автор: Karadul 8.12.2012, 18:56
А тебе приходило в голову, что люди могут писать на нескольких языках программирования, и по каждому чиху не кидаются читать талмуды на вещи, которые они вроде бы и так знают?

Неужели такие элементарные вещи, как регекспы, не могут быть сколько-нибудь логичными? Или жавоиды перед тем, как попользоваться чужим туалетом, спрашивают документацию на него?

Автор: Farmazon 8.12.2012, 19:53
именно так. У казахов в туалете бумаги нет, помни об этом.

Добавлено через 1 минуту и 17 секунд
Вообще, дело привычки. Мне вот в питоне тернарный оператор не нравится и что?...

Автор: Pawl 8.12.2012, 22:30
Цитата(Karadul @  8.12.2012,  18:56 Найти цитируемый пост)
люди могут писать на нескольких языках программирования

А позвольте узнать - чисто академического интереса ради - Вашу градацию языков программирования по степени удобства и универсальности их применения? Может, есть некий идеальный ЯП для посвященных, а я тут сижу, туплю над джавой, иногда - над Delphi, очень редко - над С++... А душа требует чего-то большего, чего-то настоящего!

Автор: dorogoyIV 9.12.2012, 00:22
Цитата(Karadul @  8.12.2012,  18:56 Найти цитируемый пост)
А тебе приходило в голову, что люди могут писать на нескольких языках программирования,

и что?!
я на восьми языках пишу.
и для каждого читаю мануалы!

Автор: Karadul 9.12.2012, 00:44
Цитата(Farmazon @  8.12.2012,  19:53 Найти цитируемый пост)
именно так. У казахов в туалете бумаги нет, помни об этом.

Вот нехрен мне делать, правда?


Цитата(Pawl @  8.12.2012,  22:30 Найти цитируемый пост)
А позвольте узнать - чисто академического интереса ради - Вашу градацию языков программирования по степени удобства и универсальности их применения? Может, есть некий идеальный ЯП для посвященных, а я тут сижу, туплю над джавой, иногда - над Delphi, очень редко - над С++... А душа требует чего-то большего, чего-то настоящего! 

Хотелось бы увидеть статический питон, но не судьба. Может, изучу сисярп и станет заипись, ява уж очень синтаксически отсталая и гуй под виндой - пародия на оный.

Автор: dorogoyIV 9.12.2012, 02:50
причем здесь ПИТОН, причем здесь C# ??? !!!!!!!!!!!!!!!!!
здесь Java!!!!!!!!!!!!!!!!!!!!!!!

Добавлено через 4 минуты и 5 секунд
сейчас существует больше двух с половиной тысяч языков программирования.
знаешь сколько языков программирования будет через пять лет?
...
их будет больше двух с половиной тысяч  smile 

Автор: Karadul 9.12.2012, 03:34
Спасибо, кэп, а к чему этот выхлоп? Я знаю, что тут. А сишарп - самый близкий к яве язык, поэтому их можно сравнивать.

Автор: dorogoyIV 9.12.2012, 03:42
просто не нужно сравнивать языки.
я вот не могу понять - как их можно сравнить - ну какой из них лучше? это не поддается логике!

здесь ты можешь задать вопрос - "как написать регулярку на джава", и сразу ответят, вот и все!  smile 

Автор: Karadul 9.12.2012, 15:25
dorogoyIV, я сравниваю вообще не языки, а api регекспов в них. Языки я сравнивал в ответ на вопрос человека, как я представляю себе идеальный язык. И почему еще их нельзя сравнивать? Машины же можно сравнивать??

Во-первых, мне придется здесь писать после безуспешных попыток это сделать самому и потом ждать ответа вместо того, чтобы за короткое время сделать все своими силами.
Во-вторых, кто-то обязательно скажет, что я - лох и ниасилил документацию.

Автор: dorogoyIV 9.12.2012, 16:50
Цитата(Karadul @  9.12.2012,  15:25 Найти цитируемый пост)
Во-вторых, кто-то обязательно скажет, что я - лох и ниасилил документацию.

если мне обломно разбираться в чем то, я могу задать вопрос здесь. например нужно составить регулярное выражение только в одной строке программы.
можно почитать доки и разобраться самому (это займет время), а можно выложить вопрос на форум и подождать, и продолжать писать программу.
второе ведь эффективнее.
если кто то скажет - ты лох, тот сам дурак.

Автор: Pawl 9.12.2012, 17:09
Цитата(Karadul @  9.12.2012,  00:44 Найти цитируемый пост)
Может, изучу сисярп и станет заипись

Почему же сразу не изучить, вместо того, чтобы писать на этой ненавистной, убогой и отсталой джаве? А то получается, как в страшной сказке: "мыши плакали, кололись, но все-равно продолжали жрать кактус"! Я просто хочу Вас понять: такой негатив к языку и такое стойкое желание на нем программировать - видимо, Вам за это ну очень хорошо платят?

Автор: Karadul 9.12.2012, 18:06
Написал уже - надо так. Или может ты мне подскажешь, как добавить сишарп код в программу на яве?

И почему я обязательно должен любить все, с чем мне приходится иметь дело?

Автор: Pawl 9.12.2012, 19:19
Цитата(Karadul @  9.12.2012,  18:06 Найти цитируемый пост)
Написал уже - надо так.

Надо? Обычно, если мне что-то надо, я это делаю так, как мне нравится. А если надо кому-то другому, у него должна быть очень веская причина, чтобы убедить меня это сделать. 
Цитата(Karadul @  9.12.2012,  18:06 Найти цитируемый пост)
И почему я обязательно должен любить все, с чем мне приходится иметь дело?

Ну, эпизодически - возможно. Как говорил товарищ Брынцалов, один раз - не 3.14дор@с. Вы же на java-форуме уже практически прописались:
Цитата

Наибольшая активность в
Форум: Java: Общие вопросы
Сообщений: 97 (33%)
(позволил себе посмотреть Ваш профиль). ИМХО, человек, постоянно занимающийся тем, чем не любит, либо святой либо извращенец. А может быть он постоянно находится под мощным стимулом кнута или пряника. Вот я и думаю, что Ваш пряник, видимо, очень вкусный. Ведь не извращенец же Вы в конце-концов! И вряд-ли Вы программируете на java под угрозой смерти. smile

Автор: Karadul 9.12.2012, 21:08
Pawl, давай демагогию прекратим? Мне надо было изменить кусок программы на яве и на элементарном куске кода я сел на грабли.

Ну и насчет пидораса -  тебе виднее.

Автор: Pawl 9.12.2012, 22:10
Цитата(Karadul @  9.12.2012,  21:08 Найти цитируемый пост)
Pawl, давай демагогию прекратим?

Давай, вот только и ты давай в следующий раз без закидонов типа "ах какая гадость эта Ваша заливная рыба"! Конкретный вопрос-конкретный ответ.
Цитата(Karadul @  9.12.2012,  21:08 Найти цитируемый пост)
Ну и насчет пидораса -  тебе виднее.

А причем тут я? Это же ваш, русский товарищ Брынцалов по телевизору во время президентской компании когда-то сказал - я сам слышал! smile 

Автор: Karadul 9.12.2012, 22:24
Давай я сам решу, что я буду говорить, а что нет? Если потребуется твое мнение - тебя позовут.

Цитата(Pawl @  9.12.2012,  22:10 Найти цитируемый пост)
А причем тут я? Это же ваш, русский товарищ Брынцалов по телевизору во время президентской компании когда-то сказал - я сам слышал! smile  

Анекдот такой слышал? "Кто это сказал?" - "Товарищ Ленин". Что-то в таком духе. Цитату принес сюда ты, вот интересно, чего у тебя к ним такое внимание?

Автор: Pawl 9.12.2012, 22:40
Цитата(Karadul @  9.12.2012,  22:24 Найти цитируемый пост)
Давай я сам решу, что я буду говорить, а что нет? Если потребуется твое мнение - тебя позовут.Цитата(Pawl @  9.12.2012,  22:10 )А причем тут я? Это же ваш, русский товарищ Брынцалов по телевизору во время президентской компании когда-то сказал - я сам слышал! smile  Анекдот такой слышал? "Кто это сказал?" - "Товарищ Ленин". Что-то в таком духе. Цитату принес сюда ты, вот интересно, чего у тебя к ним такое внимание?

Ясно. Хам. Думаю, впредь не буду высказывать Вам свое мнение, даже когда позовут.

Автор: Karadul 9.12.2012, 23:31
Я в этом треде видел пока что не мнение, а попытку докопаться. 

Автор: LSD 10.12.2012, 13:53
Цитата(Karadul @  8.12.2012,  19:56 Найти цитируемый пост)
А тебе приходило в голову, что люди могут писать на нескольких языках программирования, и по каждому чиху не кидаются читать талмуды на вещи, которые они вроде бы и так знают?

У тебя не работает твоя программа, но ты настолько ленив (или еще что похуже), что не можешь заглянуть в документацию где описано когда она возникает? user posted image


M
LSD
Поскольку темя переросла в срач, тема закрыта. 
Karadul - тебе персональное предупреждение, хочешь обсудить недостатки Java создай топик в "Религиозных войнах". Продолжишь провоцировать холивары в тематических разделах - забаню.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)