Estoy buscando una expresión regular simple para que el mismo carácter se repita más de 10 veces. Entonces, por ejemplo, si tengo un documento lleno de líneas horizontales:
=================================================
Coincidirá con la línea de = caracteres porque se repite más de 10 veces. Tenga en cuenta que me gustaría que esto funcione para cualquier personaje.

Respuestas:
La expresión regular que necesita es
/(.)\1{9,}/.Prueba:
Aquí
\1se llama referencia inversa. Hace referencia a lo que está capturado por el punto.entre los corchetes(.)y luego{9,}pide nueve o más del mismo carácter. Por lo tanto, esto coincide con diez o más de cualquier carácter.Aunque el script de prueba anterior está en Perl, esta es una sintaxis de expresiones regulares muy estándar y debería funcionar en cualquier idioma. En algunas variantes, es posible que necesite utilizar más barras invertidas, por ejemplo, Emacs le haría escribir
\(.\)\1\{9,\}aquí.Si una cadena completa debe constar de 9 o más caracteres idénticos, agregue anclas alrededor del patrón:
fuente
En Python puedes usar
(.)\1{9,}ejemplo:
Salida:
fuente
.coincide con cualquier personaje. Usado junto con las llaves ya mencionadas:fuente
grep -E '([=o])\1{10}' testygrep -E '([=o]){10}' testfuncionan bien con su ejemplo (tenga en cuenta la falta de\1en el segundo comando). ¡Pero el comandogrep -E '([=o])\1{10}' <<< '==o==o==o==o==o==o===o==o==='no coincide con la línea! Sin embargo, el comando sin\1partidos la línea:grep -E '([=o]){10}' <<< '==o==o==o==o==o==o===o==o==='. ¿Podría explicarme? Saludos;)En algunas aplicaciones, debes eliminar las barras para que funcione.
o esto:
fuente
use el operador {10,}:
fuente
También puede usar PowerShell para reemplazar rápidamente palabras o repticiones de caracteres. PowerShell es para Windows. La versión actual es 3.0.
fuente
preg_replaceEjemplo de PHP :Aquí
[a-z]golpea el carácter,()luego permite que se use con\\1referencia inversa que intenta hacer coincidir otro mismo carácter (tenga en cuenta que esto ya está apuntando a 2 caracteres consecutivos), así:Si lo hiciste:
eso sería borrar 3 caracteres repetidos consecutivos, dando como resultado:
fuente
coincidencias
=que se repiten 10 o más veces.fuente
perl -e 'print "NO" if "abcdefghijklmno" =~ /.{10,}/;'Un ejemplo de PowerShell un poco más genérico. En powershell 7, la coincidencia se resalta incluido el último espacio (¿puedes resaltar en la pila?).
fuente