A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Not (^), su uso y sus peligros

10/29
Recursos

Este caracter nos permite negar una clase o construir 鈥渁nticlases鈥, vamos a llamarlo as铆, que es: toda la serie de caracteres que no queremos que entren en nuestro resultado de b煤squeda.

Para esto definimos una clase, por ejemplo: [ 0-9 ], y la negamos [ ^0-9 ] para buscar todos los caracteres que coincidan con cualquier caracter que no sea 0,1,2,3,4,5,6,7,8 贸 9

Aportes 52

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

En SQL, si nos piden que hagamos la consulta (utilizando expresiones regulares) de una columna de una X estaci贸n, donde nos piden nombres que no empiecen en 鈥渁eiou鈥 la consulta se podr铆a realizar de la siguiente manera:

SELECT columna 
FROM nombre_tabla
WHERE columna REGEXP '^[^aeiou]';

驴Y los peligros? Ah鈥 es que no hay peligros. Que ingenioso鈥

Si quieres algunos mas desafi贸 te invito al siguiente link

https://regexone.com/lesson/repeating_characters?

^ se llama acento circunflejo

El signo ^ es llamado: Acento circunflejo

Este solo sirve como negaci贸n si se encuentra dentro de un [ ]

Recomiendo esta lectura ReDoS ya que debemos tener cuidado al dise帽ar una expreci贸n regular para evitar este tipo de vulnerabilidades.

Este caracter nos permite negar una clase o construir 鈥渁nticlases鈥, vamos a llamarlo as铆, que es: toda la serie de caracteres que no queremos que entren en nuestro resultado de b煤squeda.

Para esto definimos una clase, por ejemplo: [ 0-9 ], y la negamos [ ^0-9 ] para buscar todos los caracteres que coincidan con cualquier caracter que no sea 0,1,2,3,4,5,6,7,8 贸 9

Para que solo haga match los tel茅fonos con cualquier caracter especial excluyendo las letras podr铆a ser de la forma

\d\d\W?\d\d\W?\d\d

Acento circunflejo, as铆 se llama el s铆mbolo 鈥淾鈥

Una breve lista de los m谩s utilizados:

// ^ Indica el principio de una cadena
// $ Indica el final de una cadena
// () Un agrupamiento de parte de una expresi贸n
// [] Un conjunto de caracteres de la expresi贸n
// {} Indica un n煤mero o intervalo de longitud de la expresi贸n
// . Cualquier caracter salvo el salto de l铆nea
// ? 0-1 ocurrencias de la expresi贸n
// + 1-n ocurrencias de la expresi贸n
// * 0-n ocurrencias de la expresi贸n
// \ Para escribir un caracter especial como los anteriores y que sea tratado como un literal
// | Para indicar una disyunci贸n l贸gica (para elegir entre dos valores: a|b se tiene que cumplir al menos uno de los dos)

cual es el ascci del ^

\D <- encuentra todo lo que no sea un numero
\W <- encuentra todo lo que no sea letras y n煤meros
^ <- para negar una b煤squeda

^ se llama 鈥渁cento circunflejo鈥.

Se llama Caret Symbol el ^ 鈥済orrito鈥.

Not (^), su uso y sus peligros

  • \D -> Encuentra todo lo que no sea un d铆gito
  • \S -> Encuentra todo lo que no sea un espacio
  • \W -> Encuentra todo lo que no sea una palabra
  • ^ -> Sirve para negar SOLAMENTE dentro los corchetes. Por ejemplo: [^0-5a-c] significa que tomar谩 del 6 al 9 y de la 鈥榙鈥 a la 鈥榸鈥
<h5>Otros caracteres</h5>
  • \t 鈥 Representa un tabulador.
  • \r 鈥 Representa el 鈥渞etorno de carro鈥 o 鈥渞egreso al inicio鈥 o sea el lugar en que la l铆nea vuelve a iniciar.
  • \n 鈥 Representa la 鈥渘ueva l铆nea鈥 el car谩cter por medio del cual una l铆nea da inicio. Es necesario recordar que en Windows es necesaria una combinaci贸n de \r\n para comenzar una nueva l铆nea, mientras que en Unix solamente se usa \n y en Mac_OS cl谩sico se usa solamente \r.
  • \a 鈥 Representa una 鈥渃ampana鈥 o 鈥渂eep鈥 que se produce al imprimir este car谩cter.
  • \e 鈥 Representa la tecla 鈥淓sc鈥 o 鈥淓scape鈥
  • \f 鈥 Representa un salto de p谩gina
  • \v 鈥 Representa un tabulador vertical
  • \x 鈥 Se utiliza para representar caracteres ASCII o ANSI si conoce su c贸digo. De esta forma, si se busca el s铆mbolo de derechos de autor y la fuente en la que se busca utiliza el conjunto de caracteres Latin-1 es posible encontrarlo utilizando 鈥淺xA9鈥.
  • \u 鈥 Se utiliza para representar caracteres Unicode si se conoce su c贸digo. 鈥淺u00A2鈥 representa el s铆mbolo de centavos. No todos los motores de Expresiones Regulares soportan Unicode. El .Net Framework lo hace, pero el EditPad Pro no, por ejemplo.
  • \d 鈥 Representa un d铆gito del 0 al 9.
  • \w 鈥 Representa cualquier car谩cter alfanum茅rico.
  • \s 鈥 Representa un espacio en blanco.
  • \D 鈥 Representa cualquier car谩cter que no sea un d铆gito del 0 al 9.
  • \W 鈥 Representa cualquier car谩cter no alfanum茅rico.
  • \S 鈥 Representa cualquier car谩cter que no sea un espacio en blanco.
  • \A 鈥 Representa el inicio de la cadena. No un car谩cter sino una posici贸n.
  • \Z 鈥 Representa el final de la cadena. No un car谩cter sino una posici贸n.
  • \b 鈥 Marca la posici贸n de una palabra limitada por espacios en blanco, puntuaci贸n o el inicio/final de una cadena.
  • \B 鈥 Marca la posici贸n entre dos caracteres alfanum茅ricos o dos no-alfanum茅ricos.

En el teclado espa帽ol el caracter ^ se puede hacer con alt gr + " ( tecla a la derecha de la 脩)

Los usuarios de #Linux podemos utilizar los caracteres del c贸digo ASCII de la forma: ctrl + shift+ u y sin soltar ctrl + shift escribir el c贸digo pero en Hexadecimal

Para el caso del circunflejo (^) el c贸digo es 5E

^ Negaci贸n
\D Negaci贸n de los n煤meros

El simbolo ^ solamente funciona como negaci贸n si se coloca dentro de una clase
De otro modo funciona como principio de l铆nea

Este car谩cter ^ es llamado acento circunflejo, es muy utilizado en el idioma
portugu茅s a diferencia del espa帽ol

\S:聽Va a encontrar todo lo que NO sea car谩cter visible

\W: Me va a encontrar todo lo que no sea alfanum茅rico

\D: Me va a encontrar todo lo que no sea un d铆gito

Al usar la palabra en mayusculas estamos negandolo

El 鈥済orrito鈥 (^) solo funciona como negaci贸n cuando est谩 dentro de los corchetes [ ]
Si se encuentra fuera, significa otra cosa.

/////////////////////////////////////////////////////////////////////////////////
///////////////////////// Not (^), su uso y sus peligros ////////////////////////
/////////////////////////////////////////////////////////////////////////////////

// Este caracter nos permite negar una clase o construir 鈥渁nticlases鈥, vamos a
// llamarlo as铆, que es: toda la serie de caracteres que no queremos que entren en
// nuestro resultado de b煤squeda.

// Para esto definimos una clase, por ejemplo: [ 0-9 ], y la negamos [ ^0-9 ]
// para buscar todos los caracteres que coincidan con cualquier caracter que
// no sea 0,1,2,3,4,5,6,7,8 贸 9

// Ejemplos:

var e = /[^0-5a-c]/; // Encuentra lso caracteres que no est茅n entre 0-5 y de la 'a' a la 'c'

// Nota: el caracter '^' debe estar dentro de la clase apra que sea la adnegaci贸n

// Tips:
// [^0-9] ~ \D
// [^a-zA-Z_] ~ \W
// [^ ] ~ \S

Codigo ASCII para ^ es = ALT + 94

-Profe: 鈥渧amos a llamarle gorrito!!!鈥
-Yo: jajaX1000

Pude aplicar lo aprendido haciendo esto, \d\d\D?\d\d\D?\d\d de esta expresion la pude convertir a esta (\d{2,2}[^\d]){3,3} y da el mismo resultado

Si escribimos en may煤sculas es decir \D \W \S lo que estamos haciendo es negar la b煤squeda.

[^0-5a-c] : Aqu铆 estamos negando la b煤squeda pero con clase.

Este caracter nos permite negar una clase o construir 鈥渁nticlases鈥, vamos a llamarlo as铆, que es: toda la serie de caracteres que no queremos que entren en nuestro resultado de b煤squeda.
Para esto definimos una clase, por ejemplo: [ 0-9 ], y la negamos [ ^0-9 ] para buscar todos los caracteres que coincidan con cualquier caracter que no sea 0,1,2,3,4,5,6,7,8 贸 9
La primera forma de negar una b煤squeda es usando su clase, predefinida, no haciendo la b煤squeda con min煤scula, sino con may煤sculas. Por ejemplo, quiero buscar todos los car谩cteres, menos los n煤meros, utilizar茅 \D, todos los car谩cteres menos los alfanum茅ricos y el gui贸n bajo, usare \W, todo lo que no sea un espacio \S.
Ahora, si no quiero encontrar un rango de caracteres, utilizar茅 el ^. Por ejemplo [^0-5a-h], con esta b煤squeda no encontrar茅 los n煤meros del 0 al 5 y las letras de la a a la h.
Lo mejor de esto, 隆NO EXISTEN LOS PELIGROS CON LAS NEGACIONES!

Codigo en java

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package strings;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
*

  • @author Sem-6-INGENIERIAINDU
    */
    public class Strings {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      String mensaje = 鈥淗ola como te encuentras sofia 22鈥;
      Pattern pattern = Pattern.compile("[^a b c]");
      Matcher matcher = pattern.matcher(mensaje);
      while (matcher.find()) {
      System.out.println("Matcher: " + matcher.group());
      }

    }

}

Resultado

run:
Matcher: H
Matcher: o
Matcher: l
Matcher: o
Matcher: m
Matcher: o
Matcher: t
Matcher: e
Matcher: e
Matcher: n
Matcher: u
Matcher: e
Matcher: n
Matcher: t
Matcher: r
Matcher: s
Matcher: s
Matcher: o
Matcher: f
Matcher: i
Matcher: 2
Matcher: 2
BUILD SUCCESSFUL (total time: 0 seconds)

super clases, cada tema se pone interesante

Excelente.

Circunflejo o gorrito

el simbolo yo lo llamo potenciador por que lo usas para escribir potencias en la calculadora.

genial

Para obtener ^ usando ASCII

alt + 94 

buena clase!

Estupenda clase, al conocer la forma filtrar las b煤squedas por las caracter铆sticas que no queremos nos permite precisar todav铆a m谩s los datos deseados.

El caracter ^ pueden escribirlo como alt + 94

馃憢Hola chicos, para que escriban el circunflejo en windows lo podemos hacer de 2 formas:

  1. Alt + 94
  2. Alt Gr + { + Tecla de espacio o cualquier otra tecla.

Dale un like en 鉂 si te ayudo esta recomendaci贸n

Excelente!

En mi caso y por si a alguno le ayuda: para usar el Not(^) en teclado configurado en espa帽ol Latinoam茅rica es con Alt gr + (la tecla al lado derecho de la 帽), luego se presiona cualquier otra tecla y ah铆 aparece

(\d\d\D?){5}
<h1>Negaci贸n</h1>

Not (^), uso y peligros

  • \D Negaci贸n de los d铆gitos, ejemplo de uso para no encontrar los caracteres de la a - g y del 0 - 5 [^a-g0-5]

馃槃 no encontraba ese el simbolo ( ^ ) en mi teclado, debe tener alguna variante del latinoamericano.
En Windows lo hacia con Alt + 94 , pero en linux es con ctrl + shift + u , sueltan y luego 5E o 5e y enter

Negaci贸n

  • \d -> \D
  • \w -> \W
  • \s -> \S
  • ^ negacion

por tratar de definir este nuevo sombrerito o s铆mbolo, podemos tomar la definici贸n original y ya cada uno lo adapta como prefiera鈥
**El acento circunflejo (^) **
es un signo diacr铆tico utilizado en la ortograf铆a normal de diversas lenguas: franc茅s, espa帽ol medieval, portugu茅s, rumano, neerland茅s, noruego, gal茅s, eslovaco, griego, esperanto, vietnamita, ligur, friulano, barese y siciliano entre otros.

queremos encontrar todos los match del 0-5 y de la a-c
[0-5a-c]
ahora queremos encontrar justamente lo opuesto
[^0-5a-c]
nos devuelve exactamente lo contrario

Muy interesante. Se nota el potencial que se puede sacar de la negaci贸n.

Se pued ea帽adir el operador or en las clases []?

en Windows es alt 94 ^

8. Mis apuntes sobre: "Not (^), su uso y sus peligros"
Solo basta con poner en may煤scula o poner el caracter ^

  • 1. Ejemplo regex: Usando la negaci贸n ^ (alt+94 en windows)
[^0-5a-c ]

-Explicaci贸n 1: Encuentra y selecciona [match], todos los caracteres QUE NO SEAN
del 0 al 5, de la letra a a la letra c y que no sean espacios en blanco.

  • 2. Ejemplo regex: Usando la negaci贸n ^ en otro ejemplo
\d\d\D?\d\d\D?\d\d

-Explicaci贸n 2: Encuentra y selecciona [match], d铆gito, luego d铆gito, luego algo que
no sea d铆gito, otro d铆gito, otro d铆gito, algo que no sea d铆gito, otro d铆gito y otro d铆gito.

Negaci贸n

Se puede negar de dos maneras

聽聽聽Negar las clases predefinida: se hace escribiendo la letra en may煤scula de cada clase.

聽聽聽聽聽聽Palabra: \W
聽聽聽聽聽聽Digito: \D
聽聽聽聽聽聽Espacio en blanco: \S

聽聽聽Negar caracteres concretos: se realiza con el s铆mbolo ^ dentro de una clase definida es decir de corchetes

Lee esto te va ayudar mucho