tag - javascript regex test
¿Cómo hacer coincidir cualquier carácter de espacio no blanco, excepto uno en particular? (4)
En Perl /S
coincide con cualquier personaje que no sea de espacio en blanco.
¿Cómo puedo unir cualquier carácter que no sea de espacio en blanco excepto una barra invertida /
?
En mi sistema: CentOS 5
Puedo usar /s
fuera de las colecciones, pero tengo que usar [:space:]
dentro de las colecciones. De hecho, puedo usar [:space:]
solo dentro de colecciones. Entonces, para unir un solo espacio usando esto, tengo que usar [[:space:]]
Lo cual es realmente extraño.
echo a b cX | sed -r "s/(a/sb[[:space:]]c[^[:space:]])/Result: /1/"
Result: a b cX
- primer espacio que coincido con
/s
- segundo espacio que coincido alternativamente con
[[:space:]]
- el XI partido con "todo pero no espacio"
[^[:space:]]
Estos dos no funcionarán:
a[:space:]b instead use a/sb or a[[:space:]]b
a[^/s]b instead use a[^[:space:]]b
Esto funcionó para mí usando sed [ Editar: el comentario a continuación señala que sed no admite / s]
[^ ]
mientras
[^/s]
no lo hizo
# Delete everything except space and ''g''
echo "ghai ghai" | sed "s/[^/sg]//g"
gg
echo "ghai ghai" | sed "s/[^ g]//g"
g g
Puedes usar un lookahead:
/(?=/S)[^//]/
Puedes usar una clase de personaje :
/[^/s//]/
coincide con cualquier cosa que no sea un carácter de espacio en blanco ni un /
. Aquí hay otro ejemplo:
[abc]
significa "hacer coincidir a
, c
"; [^abc]
significa "emparejar cualquier caracter excepto a
, c
".