powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения java
39 сообщений из 39, показаны все 2 страниц
Регулярные выражения java
    #38505864
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а подскажите пожалуйста каким должно быть рег. выражение, чтобы искало только те слова, которые не включают символов и знаков типа !"=<>№?*_+. и т.д... а если вводимое слово будет с каким то из знаков, ну тогда возвращаем фразу - слово не найдено
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505868
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, правда, прочитайте хотя бы один туториал по регулярным выражениям и JavaDoc к классу Pattern.
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505869
DoSOfRedRiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,

Вам действительно трудно доки почитать?
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505881
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiver,

читал, не получается сделать к своей ситуации, напишите если знаете
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505883
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013читал, не получается сделать к своей ситуации, напишите если знаете
Покажите как пробовали.
Можно использовать все знаки \p{Punct} с отрицанием. Если нужны вообще все символы. [^\p{Punct}]
Либо если только важи знаки, то аналогично - [^все нужные символы]. Только некоторые знаки придется эскейпить слешами.
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505885
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, зачем я это пишу... всё равно будете готовый код клянчить.
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505893
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

та ну нет))) ну смотрите, если я составляю таким образом

Код: java
1.
2.
3.
4.
if(word.matches("[^А-Яа-я0-9]+$")){
            	   
            	   str="Слово не найдено";
	}


т.е. когда я вписываю в поиск чисто знаки всякие, то он мне возвращает - Слово не найдено. Но загвоздка в том, что если я вписываю в поиск буквы в перемешку со знаками например "при_+вет", то он ничё не возвращает..а надо чтобы тоже возвращал - слово не найдено..как так сделать?
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505927
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoSOfRedRiver,

никто не знает тоже?(
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505939
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,

а если ^[^А-Яа-я0-9]+$
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505942
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,

не плохо, но всё равно не возвращает "слово не найдено"
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505954
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Main {

    public static void main(String... args) {
        String word = "при_+вет";
        String str = "";

        if (!word.matches("[^А-Яа-я0-9]+$")) {
            str = "Слово не найдено";
        }

        System.out.println(str);
    }

}



Код: java
1.
Слово не найдено
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505972
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,

да, но тогда оно и ничего вообще не найдёт) добавьте в ваш код ещё например слово без знаков..
String word2 = "привет";
мне же надо чтобы нужные нормальные слова без знаков находились
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505973
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,

давайте в TDD попишем.
Какие у вас кейсы (входные данные и ожидаемый результат) есть?
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505977
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,

у меня как бы такой поиск(который я пытаюсь всё усовершенствовать) по контенту, String word - это вводимое в поиск слово, argi - это массив, в котором ищу и result - это результат поиска. Идейка такая, чтобы находилось просто слово или полностью цифры(например отсюда - 2013 год) без всяких знаков..вот эта частица логики:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
for (int i = 0; i < argi.length; i++) {
            String result = search(argi[i], "\\b"+word+"\\b");
    if (result != null && word.length()>2) {

 str += "Search phrase " + "<b>"+ word + "</b>" + " have found in " + "<a href=\"" + argi[i] + "\">" + result + "</a>"+ "<p></p>";
}
    if(word.matches("[^A-Za-z0-9]+$")|| word.length()<3){
         	   
         	   str="Word not found!";
	        }
     if (word == null || word.isEmpty()) {
            	
            	str = "Enter a search word!";
        }
        
     }
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38505999
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013, проверяйте слово перед поиском а не после, и не "не найден", а "я такое не ищу"
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506001
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,

ок, спасибо за совет
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506002
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,

Чтобы нам было проще вам помочь, присылайте компилируемый и запускаемый код, например:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class Main {

    public static void main(String... args) {
        String message = "Hello " + "world.";

        System.out.println(message);
    }

}



Какие у вас данные в argi, word?
Какой код в search()?
Нам очень трудно догадаться.
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506003
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,

пока что так и не ответили как сюда мне добавить ещё часть логики, что бы при вводе в поиск например "hel#$^llo" возвратилась str="Word not found!" вместо пустоты(ну т.е. ничего не возвращает)
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506005
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
private final Pattern TITLE = Pattern.compile("\\<title\\>(.*)\\<\\/title\\>");
	    
	    public String search(String url, String someword) {

	        try {
	            InputStreamReader in = new InputStreamReader(new URL(url).openStream(),"UTF-8");
	            StringBuilder input = new StringBuilder();
	            int ch;
	            while ((ch = in.read()) != -1) {
	                input.append((char) ch);
	            }
	            if (Pattern.compile(someword, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE).matcher(input).find()) {
	                Matcher title = TITLE.matcher(input);
	                if (title.find()) {
	                    return title.group(1);
	                }
	            }
	        } catch (IOException e) {
	            e.printStackTrace();
	        } catch (PatternSyntaxException e) {
	            e.printStackTrace();
	        }
	        return null;
	    }
	    public String toString(){
	    	String[] argi = {"http://localhost:8080/site/endipnagradi", "http://localhost:8080/site/contacts_en", "http://localhost:8080/site/news_en"};
	    
for (int i = 0; i < argi.length; i++) {
            String result = search(argi[i], "\\b"+word+"\\b");

			if(word.matches("[^A-Za-z0-9]+$")|| word.length()<3){
	         	   
	         	   str="Word not found!";
		}

	         if (word == null || word.isEmpty()) {
	            	
	            	str = "Enter a search word!";
	    }
			if (result != null && word.length()>2) {

            		str += "Search phrase " + "<b>"+ word + "</b>" + " have found in " + "<a href=\"" + argi[i] + "\">" + result + "</a>"+ "<p></p>";
        
     }
   }
}
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506022
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,

Возможный вариант.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

public class Main {
    private static String word;

    public static void main(String... args) {
        Main main = new Main();

        word = null;
        System.out.println(main.toString());
        word = "";
        System.out.println(main.toString());
        word = "ab";
        System.out.println(main.toString());

        word = "A!";
        System.out.println(main.toString());

        word = "Applet";
        System.out.println(main.toString());

        word = "Apple";
        System.out.println(main.toString());
    }

    private final Pattern TITLE = Pattern.compile("\\<title\\>(.*)\\<\\/title\\>");

    public String search(String url, String someword) {

        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(new URL(url).openStream(), "UTF-8"));
            StringBuilder input = new StringBuilder();
            String line;
            while ((line = in.readLine()) != null) {
                input.append(line);
            }
            if (Pattern.compile(someword, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE).matcher(input).find()) {
                Matcher title = TITLE.matcher(input);
                if (title.find()) {
                    return title.group(1);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (PatternSyntaxException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String toString() {
        String[] argi = {"http://apple.com"};
        String str = "";

        for (int i = 0; i < argi.length; i++) {
            String result = search(argi[i], "\\b" + word + "\\b");

            if (word == null || word.isEmpty()) {
                str = "Enter a search word!";
            } else if (!word.matches("^\\w+$") || word.length() < 3) {
                str = "Word not found!";
            } else if (result != null && word.length() > 2) {
                str += "Search phrase " + "<b>" + word + "</b>" + " have found in " + "<a href=\"" + argi[i] + "\">" + result + "</a>" + "<p></p>";
            }
        }

        return "For word `" + word + "`: " + str;
    }

}
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506023
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,

Код: java
1.
2.
3.
4.
5.
6.
For word `null`: Enter a search word!
For word ``: Enter a search word!
For word `ab`: Word not found!
For word `A!`: Word not found!
For word `Applet`: 
For word `Apple`: Search phrase <b>Apple</b> have found in <a href="http://apple.com">Apple</a><p></p>
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506489
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,

оо лучше, но странная особенность...я вот проверил - для поиска английских слов а в английском контенте всё работает - т.е. ищет нужные слова или цифры, если знаки или знаки в перемешку с буквами или цифрами, то пишет word not found, но для поиска русских букв в русском контенте не всё так - т.е. делает всё, но единственное только - это не ищет нужные русские слова..чего ж так
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506500
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013но для поиска русских букв в русском контенте не всё так - т.е. делает всё, но единственное только - это не ищет нужные русские слова..чего ж так
Открываем всё тот же JavaDoc
http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
И читаем всё, где встречается слово Unicode
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506551
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

тыкныте носом, в упор там не пойму что подставить мне надо))
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506554
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, например
\p{Alnum} An alphanumeric character:[\p{IsAlphabetic}\p{IsDigit}]
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506560
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506593
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

ну я подставил в matches "[\p{IsAlphabetic}\p{IsDigit}]" - красным подчеркнуло, потом так подставил [\\p{IsAlphabetic}\\p{IsDigit}], запустил, в поиск что-то ввёл, вообще excteption..не пойму что вы имеете ввиду..облегчите уже страдания и здесь в коде вместо "^\\w+$" покажите что надо вставить полностью чтобы для русских букв, если сами поняли что так к чему
else if (!word.matches("^\\w+$") || word.length() < 3) {
str = "Word not found!";
}
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506598
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,

Вы копипастите куски кода, даже не пытаясь понять что они делают. Правда. Как можно неделю бодаться с регулярными выражениями и до сих пор не знать что слэш надо эскейпить в Java коде. Почему вы считаете что конструкция, которую я привел заменяет целиком ваше выражение, а не какой-то отдельный его элемент?
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506658
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

та вы слишком уже "обласкали" меня=) я всё в своём коде понимаю, только лишь ещё в этих регулярных торможу - согласен, уже разобрался - вот так сработало - !word.matches("^[А-Яа-я0-9]+$"), всем спасиб за помощь и критику)
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506673
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013вот так сработало - !word.matches("^[А-Яа-я0-9]+$")
То есть, латиницы не предвидиться в принципе?
Забавно что вопрос начинался с набора !"=<>№?*_+. и прочих знаков пунктуации, а решание ограничилось буквами и цифрами.
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506689
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

я понял ваш вопрос
BlazkowiczТо есть, латиницы не предвидиться в принципе?
я же делаю два массива, откуда ищу слова, первый с англ. контентом, а другой - с русским, по-этому в моём случае мне и не надо исключать латиницу, она итак туда не попадёт. Нарисовался последний незаконченный моментик ещё в логике..Когда я вписываю не результативное, но нормальное слово, которое нет в контенте, то поиск ничё совсем не выдаёт. Посоветуете что добавить?
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506693
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,Посоветуете что добавить? я всё в своём коде понимаю
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506709
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,

это разные вещи, понимать в своём коде и добавить чтото ещё туда
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506717
Фотография dmitriyche
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013....Посоветуете что добавить?
else-блок после последнего if.
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506730
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitriyche,
else{str = "word not found in site!";}
уже добавлял так, вообще ни нужного слова, ни нужных цифр тогда не ищет - пишет всегда word not found in site!"
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506756
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fyn2013,это разные вещи, понимать в своём коде и добавить чтото ещё тудаРазные вещи, если нужно добавить что-то, перпендикулярное тому что у вас есть. Если в ваш код вы не можете добавить условие о котором говорите, которое ничем не отличается от тех что там уже есть, то вы ничего в своем коде не понимаете.
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506856
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,

это условие там не работает, главное что я знаю что понимаю свой код, и это некопипаст код, на 50% только, собственно как и у всез во многих проектах.. В итоге я всё там сам слепил + о некоторых частях логики спрашиваю здесь, так что прошу не наезжать))
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38506874
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,

лучше напишите что добавить для полного удачного поискового финиша(чтобы возвращал строку с "слово не найдено", когда ввожу в поиск слово, которого нет в контенте), если знаете))
...
Рейтинг: 0 / 0
Регулярные выражения java
    #38507139
Fyn2013
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разобрался!!)
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]