/ / Unir el resto de la cadena con regex - php, regex, string

Unir el resto de la cadena con expresiones regulares - php, expresiones regulares, cadena

Tengo una cuerda como esta

ch:keyword
ch:test
ch:some_text

Necesito una expresión regular que coincida con todas las cadenas, sin embargo, no debe coincidir con lo siguiente:

ch: (ch: is proceeded by a space, or any number of spaces)
ch: (ch: is proceeded by nothing)

Puedo deducir la longitud de la cadena con el "ch:" en ella. Cualquier ayuda sería apreciada; Estoy usando PHP "s preg_match ()

Editar: he intentado esto:

preg_match("/^ch:[A-Za-z_0-9]/", $str, $matches)

Sin embargo, esto solo coincide con 1 carácter después de la cadena. Traté de poner un * después del corchete de cierre, pero esto coincide con los espacios, que no quiero.

Respuestas

3 para la respuesta № 1
preg_match("/^ch:(S+)/", $string, $matches);
print_r($matches);

S + es para hacer coincidir 1 o más caracteres no espaciales. Esto debería funcionar para ti.


2 para la respuesta № 2
$str = <<<TEXT
ch:keyword
ch:test
ch:
ch:some_text
ch: red
TEXT;

preg_match_all("|ch:(S+)|", $str, $matches);

echo "<pre>"; print_r($matches); echo "</pre>";

Salida:

Array
(
[0] => Array
(
[0] => ch:keyword
[1] => ch:test
[2] => ch:some_text
)

[1] => Array
(
[0] => keyword
[1] => test
[2] => some_text
)

)

2 para la respuesta № 3

Prueba esta expresión regular:

^ch:S.*$

0 para la respuesta № 4

Intenta usar esto:

preg_match("/(?<! +)ch:[^ ].*/", $str);