Quiero una expresión regular para tales entradas:
1+2 3 1+22+3Pero si escribo las siguientes entradas, entonces no debería permitirlo. Como;
+1+2 1+ a+1+b+c 12+ La cadena debe comenzar con un número y luego seguir solo con el carácter + . Pero después del carácter +, tiene que ser cualquier número. Probé esto [^0-9][^+]? pero elimina el signo + al principio con la expresión regular que escribí, pero hay un problema. Al eliminar el carácter + , también elimina el número al lado. Este evento sigue repitiéndose.
¿Cómo puedo hacer esto?
Por favor, inténtalo :
\d+(\+\d)*Demostración: https://regex101.com/r/hfqmYr/2
Donde:
\d -> Coincide con cualquier dígito
+ -> Coincide con un símbolo una o más veces
* -> Coincidencia de un símbolo 0 o muchas veces
Como se menciona en los comentarios, parece que puedes usar:
^[0-9]+(?:\+[0-9]+)*$Esto es para permitir los datos de muestra mencionados y descartar aquellos que no desea permitir. Vea una demostración en línea. El patrón coincide:
^ - Anclaje de la línea de inicio.[0-9]+ - 1+ Dígitos (ASCII).(?:\+[0-9]+)* - 0+ Multiplica un grupo sin captura para permitir un signo más literal seguido de 1+ dígitos (ASCII).$ - Anclaje de línea final. Según mi conocimiento, .NET requiere que mencione explícitamente estos dígitos ASCII para evitar la coincidencia de números de otros idiomas (a menos que se especifique lo contrario usando las opciones de ECMAScript ).