Muchas gracias por responder dándome muy buena pista.
Lo que pasa es que los regexp no los domino tanto asi que he construido un algoritmo en php que me resuelve la cosa ... incluso lo he complicado mas
Seguro que con expresiones regulares queda mucho mas elegante pero solo se un poquito basico de ellas.
Aqui va mi solucion ( mas primitiva creo ... pero funciona )
Código PHP:
Ver original "A,B,C,D",
".A,B,C,D",
".A.B,C,D",
".A,B.C,D",
".A,B,C.D",
"A.B,C,D",
".A.B.C,D",
".A.B.C.D"
);
"A,B",
".A,B",
"B,C",
"B.C",
"C,D",
".C,D",
"A,B,C",
".A,B,C",
"A,B.C",
"B,C,D",
"B.C,D"
);
foreach($x as $pajar){
foreach($y as $aguja){
//Busca primero la posicion de aguja en el pajar
$posicion = strpos($pajar,$aguja); // si la coincidencia esta al principio, aunque tenga punto delante o no, siempre sera true
if($posicion === 0){
echo $aguja." true ".$pajar."<br>";
//si hay coincidencia pero no al principio
}elseif($posicion !== false){
//si la aguja tiene un punto (donde sea ) siempre sera true
if(strpos($aguja,".") !== false){ echo $aguja." true ".$pajar."<br>";
//si aguja no tiene punto
}else{
//si el caracter delante de la posicion de la coincidencia es punto,
//siempre sera false puesto que la aguja no tiene punto
if($pajar[$posicion - 1] === "."){
echo $aguja." false ".$pajar."<br>";
}
}
//por logica si no hai coincidencia siempre sera false
}else{
echo $aguja." false ".$pajar."<br>";
}
}
}
Si alguien tiene tiempo de traducirla en expresiones regulares estaría curioso como saldria
Gracias