powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Pattern: найти число, состоящее из 4 цифр
9 сообщений из 9, страница 1 из 1
Pattern: найти число, состоящее из 4 цифр
    #39788917
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Есть строка:
"Для подтверждения транзакции 12345678 вводите код 1111"

Какой должен быть Pattern, чтобы было найдено только одно число, состоящее из 4 цифр? Т.е. 1111
Причем комбинации из числа 12345678 должны быть исключены, т.к. оно состоит из более чем 4 цифр.
...
Рейтинг: 0 / 0
Pattern: найти число, состоящее из 4 цифр
    #39789027
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"\\d{4}"
...
Рейтинг: 0 / 0
Pattern: найти число, состоящее из 4 цифр
    #39789036
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя не совсем. Правильно

"\\D*\\d{4}\\D*"

Если в строке есть не цифры в начале и/или в конце, то они тоже попадут в результат. Если не нужны, потом отсеять с помощью метода в классе String: replaceAll ("\\D", "")
...
Рейтинг: 0 / 0
Pattern: найти число, состоящее из 4 цифр
    #39789057
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MХотя не совсем. Правильно

"\\D*\\d{4}\\D*"

Если в строке есть не цифры в начале и/или в конце, то они тоже попадут в результат. Если не нужны, потом отсеять с помощью метода в классе String: replaceAll ("\\D", "")
Ваш пример для строки "Dlya podtverzhdeniya tranzaktsii 12345678 vvedite odnorazovyy parol 7766" выдаёт 3 результата:
Код: java
1.
2.
3.
Dlya podtverzhdeniya tranzaktsii 1234
5678 vvedite odnorazovyy parol 
7766


А нужен один - 7766
...
Рейтинг: 0 / 0
Pattern: найти число, состоящее из 4 цифр
    #39789076
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Pattern: найти число, состоящее из 4 цифр
    #39789080
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarА нужен один - 7766
Выпиши ему штраф. Ну или просто поставь "двойку"
...
Рейтинг: 0 / 0
Pattern: найти число, состоящее из 4 цифр
    #39789125
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,

нужно знать условия поиска. Если, как в данном примере, нужное число находится в конце строки, то сгодится регулярное выражение

"(\\d{4})$"

Сам проверил, что работает.
...
Рейтинг: 0 / 0
Pattern: найти число, состоящее из 4 цифр
    #39789367
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять ошибка. В этих регулярных выражениях вообще легко ошибиться, что они будут делать не то, что надо.
Ну вот правильный пример. В нём group (0) и group (2) содержат одно и то же значение "1234", что и должно быть.

Код: 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.
package org.sukhoi.oor.test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExTest {

    public static void main(String[] args) {
	String[] tests = {"1234", "Для неподтверждения транзакции 5678 не вводите код 1234" };
	String patternExpression = "(\\D*?)(\\d{4,4})$";

	Pattern p = Pattern.compile(patternExpression);

	for (String s : tests) {
	    System.out.println (s);
	    Matcher m = p.matcher(s);

	    System.out.println("групп:" + m.groupCount());
	    if (m.find()) {
		System.out.println("есть соответствие");
		for (int i = 0; i <= m.groupCount(); i++)
		    System.out.println( i + " найдено:\"" + m.group(i) +"\"");
		
	    }	
	    else
		System.out.println("нет соответствия");
	}
    }
}
...
Рейтинг: 0 / 0
Pattern: найти число, состоящее из 4 цифр
    #39789510
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да тут просто с конца строки цифирки ищут. Зачем регулярка?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Pattern: найти число, состоящее из 4 цифр
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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