Se você deseja combinar apenas as linhas que começam com interromper o uso
^stop
Se você deseja combinar as linhas que começam com a palavra stop seguida por um espaço
^stop\s
Ou, se você deseja combinar as linhas que começam com a palavra stop, mas seguidas por um espaço ou qualquer outro caractere que não seja uma palavra que você possa usar (se o seu tipo de regex permitir)
^stop\W
Por outro lado, o que se segue corresponde a uma palavra no início de uma string na maioria dos sabores regex (nestes sabores \ w corresponde ao oposto de \ W)
^\w
Se o seu sabor não tiver o atalho \ w, você pode usar
^[a-zA-Z0-9]+
Fique atento, pois esse segundo idioma irá corresponder apenas a letras e números, sem nenhum símbolo.
Verifique seu manual de sabor regex para saber quais atalhos são permitidos e o que exatamente eles correspondem (e como eles lidam com Unicode).
^stop\b
, o que permitiria qualquer limite, incluindo o fim da linhaExperimente isto:
Explicação:
Se você quiser fazer com que a parada seja seguida por um espaço em branco, você pode modificar o RegEx da seguinte maneira:
Observação: também tenha em mente que o RegEx acima requer que a palavra de parada seja seguida por um espaço! Portanto, não corresponderia a uma linha que contém apenas: parar
fonte
Se você quiser corresponder a qualquer coisa após uma palavra, parar e não apenas no início da linha, você pode usar:
\bstop.*\b
- palavra seguida por linhaOu se você quiser combinar a palavra na string, use
\bstop[a-zA-Z]*
- apenas as palavras que começam com stopOu o início das linhas com stop apenas
^stop[a-zA-Z]*
para a palavra - apenas a primeira palavraA linha inteira
^stop.*
- apenas a primeira linha da stringE se você quiser corresponder a cada string começando com stop incluindo novas linhas, use:
/^stop.*/s
- string multilinha começando com stopfonte
Como @SharadHolani disse. Isso não corresponderá a todas as palavras que começam com " parar "
. Somente se estiver no início de uma linha como " pare de ir ". @Waxo deu a resposta certa:
Este é um pouco melhor, se você quiser combinar com qualquer palavra que começa com " parada " e contendo nada além de letras de A a Z .
Isso corresponderia a todos
Mas
corresponderia apenas (1) a (3), mas não (4) e (5)
fonte
Irá corresponder a qualquer palavra de parada (parar, parar, parar, etc)
No entanto, se você quiser apenas combinar "stop" no início de uma string
vai fazer: D
fonte
Se você quiser fazer a correspondência com qualquer coisa que comece com "parar", incluindo "parar de ir", "parar" e "parar", use:
Se você quiser combinar a palavra parar seguida de qualquer coisa como "parar de ir", "parar", mas não "parar" e não "parar", use:
fonte
Eu desaconselho uma abordagem simples de expressão regular para esse problema. Há muitas palavras que são substrings de outras palavras não relacionadas, e você provavelmente vai enlouquecer tentando adaptar as soluções mais simples já fornecidas.
Você vai querer pelo menos um algoritmo de lematização ingênuo (experimente o lematizador Porter; há código gratuito disponível na maioria das linguagens) para processar o texto primeiro. Mantenha esse texto processado e o texto pré-processado em duas matrizes separadas de divisão de espaço. Certifique-se de que cada caractere não alfabético também obtenha seu próprio índice nesta matriz. Qualquer lista de palavras que você está filtrando, elimine-as também.
A próxima etapa seria encontrar os índices de matriz que correspondem à sua lista de palavras de 'parada' radicais. Remova aqueles da matriz não processada e, em seguida, reingressa nos espaços.
Isso é apenas um pouco mais complicado, mas será uma abordagem muito mais confiável. Se você tiver alguma dúvida sobre o valor de uma abordagem mais orientada para a PNL, talvez queira fazer algumas pesquisas sobre os erros críticos .
fonte
Se quiser que a palavra comece com "parar", você pode usar o seguinte padrão. "^ pare. *"
Isso corresponderá a palavras que começam com stop seguido por qualquer coisa.
fonte
"^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