Матч Системинфо | findstr "Память" вывод с регулярным выражением - PullRequest
1 голос
/ 25 апреля 2011

Это вывод:

Total Physical Memory:     3,840 MB
Available Physical Memory:   889 MB
Virtual Memory: Max Size:  7,677 MB
Virtual Memory: Available: 4,533 MB
Virtual Memory: In Use:    3,144 MB

Я хочу получить:

Total Physical Memory
Available Physical Memory
Virtual Memory: Max Size 
Virtual Memory: Available
Virtual Memory: In Use

отдельно.

1 Ответ

1 голос
/ 25 апреля 2011

Похоже, вы хотите что-то вроде этого:

/^[A-Za-z\s:]+(?=:\s*\d+(,\d{3})*\s[MK]B)/

Вы хотите убедиться, что ваш сопоставитель регулярных выражений настроен на интерпретацию ^ как начало строки, а не всей строки. Это обычно устанавливается где-то как опция.

В зависимости от вашего вкуса регулярных выражений, вам также может понадобиться экранировать : в [A-Za-z\s:].

РЕДАКТИРОВАТЬ: Вот объяснение:

^             #The beginning of a line
[A-Za-z\s:]+  #Any number of letters, spaces, and/or `:` characters, but at least one.
(?=...)       #A positive lookahead assertion, because we want to check for the presence of the upcoming pattern but not include it in our match.
:\s*          #A colon followed by any amount of whitespace.
\d+(,\d{3})*  #A number in X,XXX,XXX format, with any number of ,XXX groups.
\s[MK]B       #A space, then either MB or KB.

Надеюсь, это довольно ясно. Если вам это нужно, вот некоторая информация об альтернативных утверждениях .

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