2014-01-09 4 views
0

Я работаю с Dynamic Disk Monitor в SiteScope, и мне нужно регулярное выражение, которое исключает слово «Harddisk» и символ «D».Regex: Как исключить одно слово и один символ?

До сих пор, я нашел это:

^(?!.*Harddisk).*/percent full 

Как добавить часть для исключения «D» в том же выражении? Я попытался это и не получилось:

^(?!.*Harddisk|^D).*/percent full 

Подробнее:

Это выражение приносит процент полный всех дисков, что сервер имеет:

/.*/percent full/ 

Это исключает все диск, название которого начинается с «Жесткий диск»:

/^(?!.*Harddisk).*/percent full/ 

Мне нужно улучшить последнее выражение для исключения всего «Жесткого диска» и, кроме того, диска «D».

Заранее благодарю вас за помощь.

С уважением, Эстрелья.

+0

Вы попробовали '^ (?!. * Harddisk | D)'? – lurker

+0

Это было первое, что я пробовал :( –

+0

Я попробовал ('$ my_var = ~ /^(?!.* Harddisk | D) /'), и он работал нормально для меня. – lurker

ответ

0

Коллега помог мне и нашел ответ, и я хотел бы поделиться с вами:

/^(?!.*[E])^(?!.*(HarddiskVolume)).*/percent full/ 

Я надеюсь, что это помогает.

Спасибо всем, кто ответил на это!

-Estrella

0

Вы можете попробовать это:

^(?>[^HD/]++|\BH|H(?!arddisk)|/(?!percent full))+/percent full 

(Не забудьте слеш при необходимости)

+0

Я попробовал и сказал, что выражение имеет ошибку. –

0

Возможно следующее будет полезно:

use strict; 
use warnings; 

while (<DATA>) { 
    print if !/(?=.*\bHarddisk\b)(?=.*\bD\b)/; 
} 

__DATA__ 
Harddisk A 
disk D 
Harddisk D 

Выход:

Harddisk A 
disk D 

Емкость оценка на if имеет следующую форму: !(x and y).

0

Сохраните это.

m{/percent full} && !/\bHarddisk\b/ && !/D/ 
Смежные вопросы