Как извлечь краткое имя операционной системы с помощью регулярных выражений в Groovy? - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь получить вывод «Windows Server 2008» из следующей строки ввода: «Операционная система на удаленной рабочей станции - Microsoft Windows Server 2008 R2 Enterprise»

Но я получаю только: «WindowsСервер "не" 2008 "

Я пытался на www.regex101.com, и я считаю, что у меня есть правильное регулярное выражение

def sentence = "The operating system in the remote workstation is Microsoft Windows Server 2008 R2 Enterprise"

def regexWinWorkstation = "Microsoft (Windows [a-zA-Z0-9]+)"
def regexWinServer = "Microsoft (Windows Server [a-zA-Z0-9]+)"

def result = sentence.find(regexWinWorkstation) {
    println it[1]
}

if (!result) {
    result = sentence.find(regexWinServer){
    println it[1]}
}

Ожидаемый вывод:" Windows Server 2008 "Фактический вывод:"Windows Server "

1 Ответ

1 голос
/ 22 мая 2019
def sentences = [
  "The operating system in the remote workstation is Microsoft Windows Server 2008 R2 Enterprise",
  "The operating system is Microsoft Windows 10 Professional",
  "The operating system is Windows XP"
]
def regexWinOptionalServer = /(?<=Microsoft )?Windows (Server )?[a-zA-Z0-9]+/

sentences.each{
  println it.find(regexWinOptionalServer)
}

отпечатки

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