powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения java
25 сообщений из 39, страница 1 из 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
25 сообщений из 39, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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