¿Qué significa * + en regexp

Estoy utilizando libphonenumber e intento comprobar algunos números de teléfono si son válidos con el patrón de regexp VALID_PHONE_NUMBER que se puede encontrar aquí y se ve así

private static final String VALID_PHONE_NUMBER = DIGITS + "{" + MIN_LENGTH_FOR_NSN + "}" + "|" + "[" + PLUS_CHARS + "]*+(?:[" + VALID_PUNCTUATION + STAR_SIGN + HASH_SIGN +"]*" + DIGITS + "){3,}[" + VALID_PUNCTUATION + STAR_SIGN + HASH_SIGN + VALID_ALPHA + DIGITS + "]*"; 

En mi teléfono Android esta expresión se compila a siguiente

 \p{Nd}{1}|[++]*+(?:[-x--?-?--/  ?? ()()[].\[\]/~?~~*#]*\p{Nd}){3,}[-x--?-?--/  ?? ()()[].\[\]/~?~~*#DEFGABCLMNOHIJKUTWVQPSRYXZdefgabclmnohijkutwvqpsryxz\p{Nd}]* 

¿Qué significa [++]*+

¿Significa "más-o-más cero-o-más-veces y luego más?

¿Tiene sentido tener dos ventajas una al lado de la otra?

5 Solutions collect form web for “¿Qué significa * + en regexp”

[++] coincide con un + o un +

*+ coincide con el [++] cero o más veces, posesivamente

Ver: http://www.regular-expressions.info/possessive.html

El más a la derecha + es bastante nuevo. Como otros han dicho, [++] significa "encontrar un solo + ". con el cuantificador * : [++]* significa "cero o más más signos".

El extremo extra derecho + en [++]*+ no es compatible con todos los motores de expresiones regulares, pero significa "no hacer ningún retroceso", es decir, hacer una "coincidencia máxima". Contraste con ? , que hace una coincidencia mínima.

Véase también esta pregunta

+ dentro de la clase de caracteres se trata como un literal .. Debe ser [+]*+

*+ es cuantificador posesivo .. No retrocede ..

  1. No

Una clase de caracteres ( [...] ) ignora los caracteres duplicados.
Por lo tanto, [++] es equivalente a \+ .

El segundo + es redundante tanto dentro como fuera de la clase de caracteres.

Dentro de la clase de caracteres [++] simplemente se ignora. Fuera de la clase de caracteres actúa como cuantificador (uno o más) pero no es válido porque excepto cuando se precede con otro cuantificador como * aquí (para cero o más) como entonces denota posesividad .

Más información en Quantificadores posesivos

Puedes hacer un cuantificador posesivo colocando un extra + después de él. Por ejemplo * es codicioso, *? es perezoso, y * + es posesivo. ++,? + y {n, m} + son también posesivos.

  • Android Java - String .replaceAll para reemplazar caracteres específicos (regex)
  • Consulta de SQLiteDatabase de Android con Regex
  • Android reemplazar con regex
  • ¿Cómo puedo eliminar la cadena de caracteres dinámicos de una cadena?
  • Buscar una subcadena entre ciertos caracteres en un índice desconocido
  • Java no funciona con regex \ s, dice: inválido secuencia de escape
  • Excluir etiquetas HTML y algunos caracteres UNICODE mientras busca en SQLite
  • Divide la cadena en la última aparición del carácter
  • ¿Cómo puedo crear una expresión regular para esto en android?
  • Cómo validar el formato de número de teléfono
  • Regex <img> Análisis de etiquetas con src, width, height
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.