RegEx для machine.name = Blah-01 в Java - PullRequest
1 голос
/ 30 июня 2011

Требуется некоторая помощь с использованием reg ex для получения имени машины из строки.Обратите внимание, что есть также новые строки между парами имя / значение.Вот строка:

произошло событие с id = 5656565655, login.user.id = 5453453345, machine.name = ubuntu-1, здесь больше пар значений имен

Регулярное выражение, над которым я работал, было:

final Matcher m = Pattern.compile("machine.name=(\\.+),")

Раньше у меня вместо DOT была буква W, но в ней пропускались имена машин с цифрами и тире.Как только я пошел в ТОЧКУ, я получаю ноль матчей.Мне нужно извлечь значение имени машины из строки.Кто-нибудь мне поможет?

Ответы [ 2 ]

2 голосов
/ 30 июня 2011

Помещая \ перед точкой, вы запрашиваете буквальную точку. Что вы, вероятно, хотите, это все до запятой, что можно сделать с помощью

final Matcher m = Pattern.compile("machine\\.name=([^,]+),")

или с не жадным модификатором:

final Matcher m = Pattern.compile("machine\\.name=(.+?),")
1 голос
/ 30 июня 2011

"machine\\.name=([^,]+),"

это означает, что все символы не в коме.

Как всегда, есть много решений.Это только один из них.

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