Какое регулярное выражение я должен использовать здесь? - PullRequest
3 голосов
/ 24 ноября 2011

Я работаю над программированием сокетов и пытаюсь сопоставить некоторые строки. Формат выглядит следующим образом:

1.) Some text

где единица представляет любое число, а некоторый текст относится ко всему (включая буквы, цифры, кавычки и т. Д.).

Я пытался использовать [0-9]*\\.\\).*, но он не возвращает совпадение. Что я делаю не так и как мне это исправить?

Редактировать По запросу, вот мой код:

/** Parses data returned by the server */
public void getSocketData(String data) {
    String[] lines = data.split("\\r?\\n");
    this.fileHosts = new String[lines.length];
    Pattern p = Pattern.compile("[0-9]*\\.\\).*");
    for (int i = 0; i < lines.length; i++) {
        String line = lines[i];
        if (p.matcher(line).matches()) {
            //The format is: 1.) "b.jpg" from "192.168.1.101:40000"
            String[] info = line.split("\"");
            this.fileHosts[i] = info[3]; //this should now contain <addr:port>
            System.out.println("Adding " + fileHosts[i] + " to fileHosts");
        }
        else {
            System.out.println("No Match!");
        }
    }
}//getSocketData

1 Ответ

2 голосов
/ 24 ноября 2011

Это работает для меня:

public static void main(String args[]) {
    String s = "1.) Some text";

    System.out.println(s.replaceFirst("^[0-9]+\\.\\).*$","matched"));
}

Вывод:

matched

РЕДАКТИРОВАТЬ: Тот же результат со следующим:

String s = "1.) \"b.jpg\" from \"192.168.1.101:40000\"";

Это пример вкомментарий в вашем коде

EDIT2: я пробую также ваш код:

        String s = "1.) \"b.jpg\" from \"192.168.1.101:40000\"";
        Pattern p = Pattern.compile("^[0-9]+\\.\\).*$"); // works also if you use * instead of +
        if (p.matcher(s).matches()) {
            System.out.println("match");
        }
        else {
            System.out.println("No Match!");
        }

Результат

match

Попробуйте использовать это регулярное выражение: ^[0-9]+\\.\\).*$

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...