Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ae galera...
essa ai ta complicada hein...
bom, vejam a seguinte regx.
?preg_replace("/\B@anwser\B/i", "'qualquer_coisa'", "campo11=2@anwser2");
bom, a ideia seria substituir o @anwser dentro do parametro subject, porem o segundo \B ali da regx não ta considerando o "" como sendo NÂO ALFA. porém, o primeiro \B esta considerando o como sendo dentro do grupo ALFA. Alguem sb oq ta rolando ai??
outra coisa soh pra complementar. Se eu colocar "/\B@anwser\b/i" com o \b minusculo, ai funfa.
vlw
cara, entendi +ou-...
veja: '/\B@teste@\B/'
oq você quis dizer é que o primeiro \B olha para a esquerda do "@" e verifica se esse caracter a esquerda é um caracter de limite de palavra não alfa?? no caso "isso é um @teste@" antes do @ tem um espaço e ele não é alpha. seria isso?
ai o segunda \B faz a mesma coisa "olha para esquerda e encontra um 'r'" que é um caracter alpha e por isso zoa td.??
caso não seja nada disso que falei, qual seria a direção do \B e \b? ele olha para direito ou para esquerda? e qual seria a tradução em ereg desse grupo? você sb?
vlw cara
>
\b matches at a word boundary
\B matches when not at a word boundary
\A matches at the start of the subject
\Z matches at the end of the subject
also matches before a newline at the end of the subject
\z matches only at the end of the subject
\G matches at the first matching position in the subject
echo preg_replace( '/\B@teste@\B/' , 'exemplo' , 'isso é um @teste@' ); //Aqui \B funciona porque o @ está nos limites
echo preg_replace( '/\Bteste\B/' , 'exemplo' , 'isso é um @teste@' ); //Aqui \B não funciona porque tanto o t quanto o e estão nos limites e são pegos com o \w
/**
* Aqui o primeiro \B funciona porque o @ não é parte de uma palavra e o \b porque o r faz parte de uma palavra
*/
echo preg_replace( '/\B@anwser\b/i', "'qualquer_coisa'", 'campo11=2@anwser2' );