RGJ
(Richard - Communiteq)
12 Settembre 2025, 9:11am
1
Simile a questo
Riproduzione
Espressioni regolari delle parole monitorate abilitate
Azione tag delle parole monitorate
Espressione regolare *abc
Risultato
È impossibile creare argomenti o post
RegexpError (target of repeat operator is not specified: /(*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 “ripeti il token precedente zero o più volte”
non c’è un token precedente
2 Mi Piace
pfaffman
(Jay Pfaffman)
12 Settembre 2025, 11:18am
2
Quindi la regex dovrebbe essere convalidata prima di consentirne l’aggiunta? E dovrebbe esserci un recupero in modo che una regex non valida non possa mandare in crash tutto il mondo?
1 Mi Piace
RGJ
(Richard - Communiteq)
12 Settembre 2025, 11:03pm
3
Ciò che è ovviamente successo qui è che le parole monitorate erano parole monitorate normali e * era il carattere jolly, e quindi è stata abilitata l’opzione watched words regular expressions enabled.
Quindi questo
1 Mi Piace
pfaffman
(Jay Pfaffman)
12 Settembre 2025, 11:16pm
4
Beh, ora è ovvio quando lo dici così.
sam
(Sam Saffron)
15 Settembre 2025, 12:19am
5
La convalida delle regex al salvataggio sembra una cosa molto sensata da fare.
Metto un pr-welcome su questo, ma il team valuterà e deciderà se ha senso farlo nelle prossime settimane per risparmiarci supporto futuro.
1 Mi Piace
RGJ
(Richard - Communiteq)
15 Settembre 2025, 8:17am
6
Ciò non impedirà alle persone di inserire espressioni wildcard “normali” e poi attivare watched words regular expressions enabled, che è quello che è successo qui.
Penso che abbia solo bisogno di un gestore di eccezioni attorno alla chiamata 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 Mi Piace
Grazie per il report @RGJ , questo verrà corretto da
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 Mi Piace
zogstrip
Chiuso
7 Ottobre 2025, 6:00am
9
Questo argomento è stato chiuso automaticamente dopo 10 ore. Non sono più consentite nuove risposte.