Respuestas:
Si desea hacer coincidir solo las líneas que comienzan con, deje de usar
^stop
Si desea hacer coincidir las líneas que comienzan con la palabra parada seguida de un espacio
^stop\s
O, si desea hacer coincidir las líneas que comienzan con la palabra stop pero seguidas por un espacio o cualquier otro carácter que no sea una palabra que pueda usar (su estilo de expresión regular lo permite)
^stop\W
Por otro lado, lo que sigue coincide con una palabra al principio de una cadena en la mayoría de los sabores de expresiones regulares (en estos sabores, \ w coincide con lo contrario de \ W)
^\w
Si su sabor no tiene el atajo \ w, puede usar
^[a-zA-Z0-9]+
Tenga cuidado de que este segundo modismo solo coincidirá con letras y números, sin símbolo alguno.
Consulte su manual de sabor de expresiones regulares para saber qué accesos directos están permitidos y qué coinciden exactamente (y cómo tratan con Unicode).
^stop\b
, lo que permitiría cualquier límite, incluido el final de la línea
Prueba esto:
/^stop.*$/
Explicación:
Si desea hacer cumplir esa parada seguida de un espacio en blanco, puede modificar la expresión regular de la siguiente manera:
/^stop\s+.*$/
Nota: también tenga en cuenta que la expresión regular anterior requiere que la palabra de detención esté seguida de un espacio. Entonces no coincidiría con una línea que solo contiene: stop
Si desea hacer coincidir cualquier cosa después de una palabra, deténgase y no solo al comienzo de la línea, puede usar: \bstop.*\b
- palabra seguida de línea
O si desea hacer coincidir la palabra en el uso de cadena \bstop[a-zA-Z]*
- sólo las palabras que comienzan con la parada
O el comienzo de las líneas con parada solo ^stop[a-zA-Z]*
para la palabra - solo la primera palabra
Toda la línea ^stop.*
- primera línea de la cadena
Y si desea hacer coincidir todas las cadenas que comienzan con parada, incluidas las nuevas líneas, use: /^stop.*/s
- cadena de varias líneas que comienza con parada
Como dijo @SharadHolani. Esto no coincidirá con todas las palabras que comiencen con " detener "
. Solo si está al principio de una línea como " deja de ir ". @Waxo dio la respuesta correcta:
Éste es un poco mejor, si desea hacer coincidir cualquier palabra que comienza con " parada " y que contiene nada más que las letras de la A a la Z .
\bstop[a-zA-Z]*\b
Esto coincidiría con todos
detener (1)
detener azar (2)
parada (3)
quiero parar (4)
por favor para (5)
Pero
/^stop[a-zA-Z]*/
solo coincidiría con (1) hasta (3), pero no (4) y (5)
/stop([a-zA-Z])+/
Coincidirá con cualquier palabra de parada (parada, parada, parada, etc.)
Sin embargo, si solo desea hacer coincidir "detener" al comienzo de una cadena
/^stop/
hará: D
Si desea hacer coincidir cualquier cosa que comience con "detener", incluidos "dejar de ir", "detener" y "detener" utilice:
^stop
Si desea hacer coincidir la palabra detener seguida de cualquier cosa como en "dejar de ir", "detener esto", pero no "detener" y no "detener", use:
^stop\W
Aconsejaría contra un enfoque de expresión regular simple para este problema. Hay demasiadas palabras que son subcadenas de otras palabras no relacionadas, y probablemente se volverá loco tratando de adaptar las soluciones más simples ya proporcionadas.
Querrá al menos un algoritmo de derivación ingenuo (pruebe la derivación de Porter; hay código gratuito disponible en la mayoría de los idiomas) para procesar el texto primero. Mantenga este texto procesado y el texto preprocesado en dos matrices separadas de espacio dividido. Asegúrese de que cada carácter no alfabético también tenga su propio índice en esta matriz. Cualquiera que sea la lista de palabras que esté filtrando, elimínelas también.
El siguiente paso sería encontrar los índices de matriz que coincidan con su lista de palabras derivadas 'stop'. Elimínelos de la matriz sin procesar y luego vuelva a unirlos en los espacios.
Esto es solo un poco más complicado, pero será un enfoque mucho más confiable. Si tiene alguna duda sobre el valor de un enfoque más orientado a la PNL, es posible que desee investigar un poco los errores de clbuttic .
Si desea que la palabra comience con "detener", puede utilizar el siguiente patrón. "^ detente. *"
Esto coincidirá con las palabras que comienzan con parada seguida de cualquier cosa.
"^stop"
?
code
String line = "stopped";
String pattern = "^stop";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
System.out.println(m.find( )); //prints true
System.out.println(line.matches(pattern)); //prints false