Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения / 16 сообщений из 16, страница 1 из 1
04.10.2014, 06:57
    #38766772
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Добрый день,
Не могли бы подсказать где ошибка в регулярном выражении?

Вот текст:
Код: java
1.
ТЭД ЭД-118 А №1 Зав. №24630-Статор  81620-Якорь


А вот функция:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
	public static boolean IsolationTED(String income) {
		boolean isAB = false;
		
		Pattern _pattern = Pattern.compile("^ТЭД ЭД-\\d+( \\w)? №\\d Зав. №\\d+-Статор \\d+-Якорь$");

		Matcher _matcher = _pattern.matcher(income);
		isAB = _matcher.matches();
		return isAB;
	}


Функция возвращает false. Не могу найти ошибку.
Спасибо.
...
Рейтинг: 0 / 0
04.10.2014, 12:20
    #38766838
elitegroup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
LiQuid ,
У Вас в строке между "Статор" и "81620" 2 пробела, а по регеспу один.
авторТЭД ЭД-118 А №1 Зав. №24630-Статор 81620-Якорь
...
Рейтинг: 0 / 0
04.10.2014, 15:58
    #38766928
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Удалил.
Все равно возвращает false.
...
Рейтинг: 0 / 0
05.10.2014, 08:19
    #38767125
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
LiQuid,у тебя еще в строке бука А после первого слова, твоё вождение его не имеет.

\w это уже и так whitespace , зачем в группу еще и пробел добавлять?
...
Рейтинг: 0 / 0
05.10.2014, 08:21
    #38767126
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
MasterZiv,
извиняюсь после второго слова буква А.
...
Рейтинг: 0 / 0
05.10.2014, 08:51
    #38767128
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
ОК, я убираю группирование и пробел:

^ТЭД ЭД-\\d+ \\w №\\d Зав. №\\d+-Статор \\d+-Якорь$

Это тоже не подходит.
...
Рейтинг: 0 / 0
05.10.2014, 08:53
    #38767129
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Вместо \w указал явно А,

^ТЭД ЭД-\\d+ А №\\d Зав. №\\d+-Статор \\d+-Якорь$

Теперь принимает, только вопрос почему \w не хочет принимать? Ведь это равно к тому что принимай любую цифру или букву?
...
Рейтинг: 0 / 0
05.10.2014, 11:35
    #38767153
smackmychi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
LiQuid,

Документация-то вам на что?

Predefined Character Classes\w A word character: [a-zA-Z_0-9]
...
Рейтинг: 0 / 0
06.10.2014, 05:29
    #38767458
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
А что русские буквы не будет принимать? [а-я][А-Я] ???
...
Рейтинг: 0 / 0
06.10.2014, 14:45
    #38767923
smackmychi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
LiQuid,
А вы видите их в описании класса w?
...
Рейтинг: 0 / 0
07.10.2014, 06:07
    #38768610
LiQuid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Ок, их в описании нет, как нибудь можно выйти из этой ситуации?
Можно сделать так чтобы русские буквы тоже понимал?
...
Рейтинг: 0 / 0
07.10.2014, 17:50
    #38769487
elitegroup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
LiQuid ,
может как-то так
Код: java
1.
[A-Za-zА-Яа-я]{1,1}
...
Рейтинг: 0 / 0
08.10.2014, 10:17
    #38769983
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
LiQuidМожно сделать так чтобы русские буквы тоже понимал?
Включить поддержку Unicode ?
...
Рейтинг: 0 / 0
08.10.2014, 11:20
    #38770087
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
"Статор 81620" - два пробела. В выражении только один.
...
Рейтинг: 0 / 0
08.10.2014, 11:26
    #38770098
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Blazkowicz"Статор 81620" - два пробела. В выражении только один.
Вот же слоупок.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
    public static void main(String[] args) {
        String text = "ТЭД ЭД-118 А №1 Зав. №24630-Статор  81620-Якорь";
        Pattern pattern = Pattern.compile("ТЭД ЭД-\\d+( [\\p{L}\\p{Lu}])? №\\d+ Зав. №\\d+-Статор\\s+\\d+-Якорь");

        Matcher matcher = pattern.matcher(text);
        if(matcher.matches()) {
            System.out.println(matcher.group(1));
        }
    }


\p{Lu} - работает. Странно \p{Alpha} тоже должен. Но нет.
...
Рейтинг: 0 / 0
08.10.2014, 11:28
    #38770102
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения
Blazkowicz\p{Lu} - работает. Странно \p{Alpha} тоже должен. Но нет.
\\p{L} тоже
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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