test tag regex perl

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 ".