• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Регулярные выражения

  • Автор темы Dasha
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Dasha

помогите пожайлуста найти ошибку в программе. Мне нужно чтобы вывадилось совпавшее выражение. Может быть я использую неправильный метод? Заранее спасибо!

import java.util.regex.*;


public class Test {
public static final Pattern pattern = Pattern.compile
("[\\s\\d{1,2,3}\\u002E\\d{1,2,3}\\u002E\\d{1,2,3}\\u002E\\d{1,2,3}]");


public static void main(String[] args) {

String lala = "[ Call 8687 " +
"from kel@sip:kel@192.168.100.100:5060;transport=udp" +
"SDP:v=0" +
"o=keller 0 0 IN IP4 192.168.100.60" +
"c=IN IP4 192.168.100.60" +
"]";

Matcher matcher = pattern.matcher(lala);

boolean d = matcher.find();

if (d==true)
{
System.out.println(matcher.group());
}
}
}
И еще правильно я составила регулярное выражение,если мне нужен IP-адрес - 192.168.100.60, но он может быть и другим....
 
M

mkredaktor

завтра напишу что и как. а то поздно уже.
 
M

mkredaktor

Вот лови. работает. переделаешь под свои нужды. если тебе нужна будет помощь то обращайся. Всегда буду рад помочь :D

import java.util.regex.*;

public class Test
{
private static String REGEX = "[\\s\\d{1,2,3}\\u002E\\d{1,2,3}\\u002E\\d{1,2,3}\\u002E\\d{1,2,3}]";
private static String INPUT = "[ Call 8687 "
+ "from kel@sip:kel@192.168.100.100:5060;transport=udp" + "SDP:v=0"
+ "o=keller 0 0 IN IP4 192.168.100.60" + "c=IN IP4 192.168.100.60"
+ "]";
private static Pattern pattern;
private static Matcher matcher;
private static boolean found;

public static void main(String[] args)
{
pattern = Pattern.compile( REGEX );
matcher = pattern.matcher(INPUT);

System.out.println("Current REGEX is: "+REGEX);
System.out.println("Current INPUT is: "+INPUT);

while(matcher.find()) {
System.out.println("I found the text \"" + matcher.group() +
"\" starting at index " + matcher.start() +
" and ending at index " + matcher.end() + ".");
found = true;
}

if(!found){
System.out.println("No match found.");
}

}
}
 
D

Dasha

Спасибо за ответ! Но я уже разобралась :) Регулярное выражение как написал ты ищет все цифры или точки. А мне надо было опред. конструкию (ххх.ххх.ххх.ххх, где х-любая цифра). Поэтому я составила так ("\\s[0-9]{1,3}\\u002E[0-9]{1,3}\\u002E[0-9]{1,3}\\u002E[0-9]{1,3}").
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!