regex no eliminar subrayado del patrón

Hari Bisht:

Yo estaba tratando de código para permitir que ciertos caracteres especiales en una cadena utilizando java.util.regex.Matcher y java.util.regex.Pattern pero esto no es la eliminación de subrayado del mismo. Soy nuevo aqui. Necesito ayuda en esto. extracto de código de abajo:

  // String to be scanned to find the pattern.
  String line = "This order was _:$ placed for QT3000! OK?";
  String pattern = "[^\\w\\s\\-?:().,'+\\/]";
  String s = null;

  // Create a Pattern object
  Pattern r = Pattern.compile(pattern);

  // Now create matcher object.
  Matcher m = r.matcher(line);
  s= m.replaceAll("");
  System.out.println("Output: " + s);

Esperado: Esta orden fue: situado para QT3000 OK? Real: Esta orden fue _: situado para QT3000 OK?

Wiktor Stribiżav:

El \wpatrón coincide con guiones y [^\w]coincide con cualquier carbón, pero las letras, dígitos y un guión bajo.

Reemplazar con \p{Alnum}:

String pattern = "[^\\p{Alnum}\\s?:().,'+/-]";

Nota pongo el guión al final de la clase de caracteres a fin de no escapar de ella y quitar el escape \de la /ya que no es un meta-carácter especial de expresiones regulares.

Vea la demostración de expresiones regulares de Java .

El [^\\p{Alnum}\\s?:().,'+/-]patrón coincide con cualquier carbón, pero:

  • \p{Alnum} - alfanumérica [a-zA-Z0-9]
  • \s - espacios en blanco
  • ? - un signo de interrogación
  • : - dos puntos
  • (- un (símbolo
  • )- un )símbolo
  • . - un punto
  • , - en el apartado
  • ' - una comilla
  • + - a más
  • / - una barra inclinada
  • - - un guión.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=200797&siteId=1
Recomendado
Clasificación