Tem algum programador de perl ai ??
sera que algum bom ser pode me ajudar a entender 2 linhas ?
1-> ^[[:space:]]*Found( the|:)[[:space:]]*(.*)[[:space:]]*(|virus[^a-z.]*)$/2
2-> (?=Infection\:)[[:space:]]*(.*)$
desde-ja obrigado .
Tem algum programador de perl ai ??
sera que algum bom ser pode me ajudar a entender 2 linhas ?
1-> ^[[:space:]]*Found( the|:)[[:space:]]*(.*)[[:space:]]*(|virus[^a-z.]*)$/2
2-> (?=Infection\:)[[:space:]]*(.*)$
desde-ja obrigado .
Cara isso se chama REGEX ou expressao regular e nao perl
hummmm .... não sabia .... mas enfim aguem pode me ajudar a entender isso ... ta meio complicado
obrigado
Bom.. vamos lá.. por partes..Postado originalmente por smvda
^ -> inicio de linha
[[:space:]] -> qualquer coisa dentro desses [] representa uma lista de caracteres possiveis..nesse caso [:space:] representa uma classe de espaços...
* -> significa 0 ou mais vezes
Found -> uma string normal, assim como the
(the|: ) -> eh o mesmo que dizer "the" ou ":" o que nos leva a concluir que pipe signigica "ou"
"." -> significa qualquer coisa (em termos de string)
(|virus[^a-z.]*) -> essa linha me deixou um pouco confusa
seria o mesmo que dizer (nada ou "virus" que nao seja a-z ou qualquer coisa uma ou mais vezes).. de repente deve ser pra dizer que nao pode ter mais nada na linha.. mas relamente nao tenho certeza
Ah.. importante.. o "^" dentro de uma lista eh uma negaçao..
e pro fim o $ representa final de linha.
Na segunda linha a unica coisa que tem de diferente eh o "?" se significa 0 ou 1.. o que tbm me deixou um pouco confusa pq nao tem nada antes
A partir disso vc pode montar a string que ta sendo procurada.. se precisar de ajuda pra isso é só falar
Desculpa se a explicacao ficou meio confusa
[]s
huahuahauh.. aqueles smiles ficaram muito engraçados no meio da expressao regular :lol:
Nossa, obrigado pela ajuda sim .. muito obrigado mesmo
vou ver se monto algo qualquer coisa posto aqui
Obrigado denovo
hehehe tenque desativar os smilles ai funcaPostado originalmente por _ivy_
_iv_ como eu faço para procurar algo usando regex
exe: string -> your filed is infected
como eu procuro a palavra "infected" ??
pode me ajudar ?
Isso nao eh la muito usado para verificar se tem so uma palavra, eh melhor voce fazer uma comparação de string para ver se retorna isso, afinal expressao regulares sao para "encontrar" diversas strings que tem um mesmo comportamento.
claro que isso nao impede que voce monte uma expressao regular que sirva para isso:
(infected)* serviria no seu caso, que iria ver se encontra uma ou mais palavras (infected) no texto, no caso, string passada.
eu preciso da expressão pois o software que busca isso usa regular expression e é compativel com somente isso .
hu.. olha so.. uma palavra sozinha casa com qualquer coisa.. tu só precisa aplicar algo mais na palavra quando existe alguma regra de sequencia... tbm nao sei se entendi direito a sua perguntaPostado originalmente por smvda
mas pra vc entender melhor pode pensar no 'vi' .. o que vc faz quando quer procurar uma unica palavra lá? /palavra , certo?
Hm, bom de qualquer forma, pode usar isso pra brincar:
#!/usr/bin/perl
while($l = <STDIN>) {
if($l =~ /altere aqui/) {
print "achei na linha: $l";
}
}
salva isso num arquivo, da permisao de execucao. e faz:
$ ./script < arquivo
substitui o <altere aqui> por qualquer expressao regular.. ou por palavras soltas.. e ve o que acontece
acho que isso vai te ajudar a entender melhor o espirito da expressao regular
e desculpa a demora pra responder.. eu tava sem computador no findi
[]'s
rs.. era eu ali em cima viu?
esqueci de logar..
Código :#!/usr/bin/perl while($l = <STDIN>) { if($l =~ /altere aqui/) { print "achei na linha: $l"; } }
Corrigindo a formatação do meu código .. eheh