RGJ
(Richard - Communiteq)
12 Septiembre, 2025 09:11
1
Similar a este
Reproducción
Expresiones regulares de palabras vigiladas habilitadas
Acción de etiqueta de palabras vigiladas
Expresión regular *abc
Resultado
Es imposible crear temas o publicaciones
RegexpError (el objetivo del operador de repetición no está 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 el token anterior cero o más veces”
no hay token anterior
2 Me gusta
pfaffman
(Jay Pfaffman)
12 Septiembre, 2025 11:18
2
Entonces, ¿realmente la expresión regular debería validarse antes de permitir que se agregue? ¿Y debería haber un rescate para que una expresión regular inválida no pueda colapsar el mundo entero?
1 me gusta
RGJ
(Richard - Communiteq)
12 Septiembre, 2025 23:03
3
Lo que obviamente sucedió aquí es que las palabras observadas eran palabras observadas regulares y * era el comodín, y luego se habilitó watched words regular expressions enabled.
Así que esto
1 me gusta
pfaffman
(Jay Pfaffman)
12 Septiembre, 2025 23:16
4
Bueno, ahora es obvio cuando lo dices así.
sam
(Sam Saffron)
15 Septiembre, 2025 00:19
5
Validar expresiones regulares al guardar parece una acción muy sensata.
Se añade un pr-welcome , pero el equipo evaluará y decidirá si tiene sentido hacerlo en las próximas semanas para ahorrarnos soporte futuro.
1 me gusta
RGJ
(Richard - Communiteq)
15 Septiembre, 2025 08:17
6
Eso no evitará que las personas ingresen expresiones comodín “normales” y luego activen watched words regular expressions enabled, que es lo que sucedió aquí.
Creo que solo necesita un manejador de excepciones alrededor de la llamada a 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 Me gusta
Gracias por el informe @RGJ , esto se solucionará con
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 Me gusta
zogstrip
Cerrado
7 Octubre, 2025 06:00
9
Este tema se cerró automáticamente después de 10 horas. Ya no se permiten nuevas respuestas.