Expression régulière de mot observé en panne (2025)

Similaire à celui-ci

Repro

  • Expressions régulières de mots surveillés activées
  • Action d’étiquette de mots surveillés
  • Expression régulière *abc

Résultat

Il est impossible de créer des sujets ou des publications

RegexpError (la cible de l'opérateur de répétition n'est pas spécifiée : /(*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'

Cause

  • * signifie « répéter le jeton précédent zéro fois ou plus »
  • il n’y a pas de jeton précédent
2 « J'aime »

Donc, l’expression régulière devrait vraiment être validée avant d’être autorisée à être ajoutée ? Et il devrait y avoir une gestion des erreurs pour qu’une expression régulière invalide ne puisse pas faire planter le monde entier ?

1 « J'aime »

Ce qui s’est évidemment passé ici, c’est que les mots surveillés étaient des mots surveillés normaux et * était le joker, puis que watched words regular expressions enabled a été activé.

Donc, ceci

1 « J'aime »

Eh bien, maintenant, c’est évident quand tu le dis comme ça. :rofl:

Valider les expressions régulières à la sauvegarde semble tout à fait sensé.

Je mets un pr-welcome ici, mais l’équipe examinera et décidera si cela a du sens de le faire dans les semaines à venir pour nous éviter de futurs problèmes de support.

1 « J'aime »

Cela n’empêchera pas les gens d’entrer des expressions génériques « normales », puis d’activer watched words regular expressions enabled, ce qui est arrivé ici.

Je pense qu’il suffit d’un gestionnaire d’exceptions autour de l’appel 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 « J'aime »

Merci pour le rapport @RGJ, cela sera corrigé par

3 « J'aime »

Ce sujet a été automatiquement fermé après 10 heures. Les nouvelles réponses ne sont plus autorisées.