2009-10-02 19 views

Respuesta

8

No es aclara lo que quieres decir. Si quieres un personaje en los dígitos de inicio y dobles al final, podría utilizar

^[A-Za-z].*\d\d$ 

Si sólo desea un guión y luego un sola dígitos, utilice:

^[A-Za-z].*-\d$ 

si no les importa cuántos dígitos hay (uno o más), pero tiene que haber un guión, utilice:

^[A-Za-z].*-\d+$ 

Si ninguno de esos son lo que desea, por favor, dar más información ... la primera frase de tu pregunta realmente no concuerda con el resto.

+0

Olvidó el cuantificador para '[A-Za-z]'. – Gumbo

+0

O más bien, me olvidé de otras cosas después de eso, no sabemos si A00-10 sería aceptable. Reparado, gracias. –

4

Para su ejemplo

egrep -v "^(ABC)-(0|1)$" 

es la respuesta. Para el caso común, mire la respuesta de Jon

^ marca el inicio del patrón, $ el final. | significa or

9

Si usted está tratando de juntar palabras que utilizan \b como el delimitador de palabra, de esta manera:

\ b [A-Za-z] - \ d + \ b

de this reference:

\b - Detecta la posición entr na carácter de palabra (nada corresponde con \w) y un carácter no-palabra (nada corresponde con [^\w] o \W), así como al principio y/o al final de la cadena si el primer y/o último caracteres de la cadena son personajes de palabras

+2

Si bien puede obtener el comportamiento PCRE en algunas versiones de grep con "grep -P", \ b tiene errores y no se comporta de manera confiable; en particular, no detecta tabulación como un carácter de límite de palabra ('\ b/www \ n' roto en GNU grep 2.6.3). Si esto hubiera funcionado, sería la mejor respuesta (y ¡ojalá hubiera funcionado!)! –

+0

Gracias por esa información. –

Cuestiones relacionadas