RGJ
(Richard - Communiteq)
Setembro 12, 2025, 9:11am
1
Semelhante a este
Repro
Expressões regulares de palavras monitoradas ativadas
Ação de tag de palavras monitoradas
Expressão regular *abc
Resultado
É impossível criar tópicos ou postagens
RegexpError (alvo do operador de repetição não especificado: /(*abc)/i)
app/services/word_watcher.rb:239:in `initialize'
app/services/word_watcher.rb:239:in `new'
app/services/word_watcher.rb:239:in `word_matches?'
lib/topic_creator.rb:214:in `block in setup_tags'
lib/topic_creator.rb:213:in `each'
lib/topic_creator.rb:213:in `setup_tags'
lib/topic_creator.rb:48:in `create'
lib/post_creator.rb:493:in `create_topic'
Causa
* significa “repetir o token anterior zero ou mais vezes”
não há token anterior
2 curtidas
pfaffman
(Jay Pfaffman)
Setembro 12, 2025, 11:18am
2
Então, na verdade, a regex deve ser validada antes de ser permitida a adição? E deve haver um resgate para que uma regex inválida não possa derrubar o mundo inteiro?
1 curtida
RGJ
(Richard - Communiteq)
Setembro 12, 2025, 11:03pm
3
O que obviamente aconteceu aqui foi que as palavras observadas eram palavras observadas regulares e * era o curinga, e então watched words regular expressions enabled foi ativado.
Então, isso
1 curtida
pfaffman
(Jay Pfaffman)
Setembro 12, 2025, 11:16pm
4
Bem, agora está óbvio quando você diz assim.
sam
(Sam Saffron)
Setembro 15, 2025, 12:19am
5
Validar regex ao salvar parece uma coisa muito sensata a se fazer.
Colocando um pr-welcome nisso, mas a equipe fará a triagem e decidirá se faz sentido fazer isso nas próximas semanas para nos poupar suporte futuro.
1 curtida
RGJ
(Richard - Communiteq)
Setembro 15, 2025, 8:17am
6
Isso não impedirá que as pessoas insiram expressões curinga “normais” e, em seguida , ativem watched words regular expressions enabled, que é o que aconteceu aqui.
Eu acho que só precisa de um manipulador de exceção em torno da chamada regexp
def word_matches?(word, case_sensitive: false)
options = case_sensitive ? nil : Regexp::IGNORECASE
Regexp.new(WordWatcher.word_to_regexp(word), options).match?(@raw)
end
2 curtidas
Obrigado pelo relatório @RGJ , isso será corrigido por
main ← fix-watched-words-regexp
opened 05:25PM - 06 Oct 25 UTC
If you have a watched word with a wildcard and then enable the "watched words re… gexp" site setting, you might end up in a situation where you can't post anymore because of the invalid regexp.
This ensures we correctly skip invalid regexps.
Ref - https://meta.discourse.org/t/-/382417
3 curtidas
zogstrip
Fechado
Outubro 7, 2025, 6:00am
9
Este tópico foi fechado automaticamente após 10 horas. Novas respostas não são mais permitidas.