Respostas:
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 linha
Experimente isto:
/^stop.*$/
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:
/^stop\s+.*$/
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
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 linha
Ou se você quiser combinar a palavra na string, use \bstop[a-zA-Z]*- apenas as palavras que começam com stop
Ou o início das linhas com stop apenas ^stop[a-zA-Z]*para a palavra - apenas a primeira palavra
A linha inteira ^stop.*- apenas a primeira linha da string
E se você quiser corresponder a cada string começando com stop incluindo novas linhas, use: /^stop.*/s- string multilinha começando com stop
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 .
\bstop[a-zA-Z]*\b
Isso corresponderia a todos
parar (1)
parar aleatório (2)
parando (3)
quer parar (4)
por favor pare (5)
Mas
/^stop[a-zA-Z]*/
corresponderia apenas (1) a (3), mas não (4) e (5)
/stop([a-zA-Z])+/
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
/^stop/
vai fazer: D
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 .
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.
"^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