laeknishendr Posted September 5, 2012 at 08:38 PM Report #474580 Posted September 5, 2012 at 08:38 PM Gostaria de saber como poderia fazer para realizar uma captura em cadeia através do isso de uma expressão regular, de modo que capture tudo dentro de xy, inclusive o próprio xy. se eu informar "xxxyyy", ela deve retornar: xxyy xy. Se eu informar: xxxxyyyy, deve retornar: xxxyyy xxyy xy
HappyHippyHippo Posted September 6, 2012 at 08:46 AM Report #474597 Posted September 6, 2012 at 08:46 AM assim de repente só com uma expressão regular não estou a ver ... mas podes ter esse resultado desta maneira: $string="xxxxxyyy"; $res = array(); $length = floor(strlen($string) / 2); while ($length > 0) { $match = array(); if (preg_match('/x{'.$length,')y{'.$length.'}/', $string, $match); $res = array_merge($res, $match); $length--; } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
brunoais Posted September 6, 2012 at 11:13 AM Report #474619 Posted September 6, 2012 at 11:13 AM É impossível obter isso com regex. Expressões regulares (regex) não têm ciclos. Se souberes um valor máximo a que isso pode chegar, eu posso mostrar um exemplo de regex para isso. (x(x(x(xy)y)?y)?y)? "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Rui Carlos Posted September 16, 2012 at 03:21 PM Report #475598 Posted September 16, 2012 at 03:21 PM xnyn é um exemplo clássico de uma linguagem não regular (e como tal não pode ser modelado com uma expressão regular, no sentido matemático do conceito). É a velha história das expressões regulares não saberem contar. É provável que algumas linguagens de programação tenham mecanismos mais expressivos que expressões regulares matemáticas, mas mesmo assim tenho é estranho usares expressões regulares nesse caso. Rui Carlos Gonçalves
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now