eine eine Reihe von Routen Ich habe Hinzufügen, der wie sein kann:eine Regex Constraint auf einer Rails-Strecke
possible routes:
- mac-book-retina-17-pid234-234
- hp-laptop-pid234-234
- vaoe-x12-pid234-234
und ich möchte alle zu einer Aktion mit den Einschränkungen in Ruby Routendatei anzupassen. So etwas wie
get 'products/:product_info', to: 'products#type', constraints: { product_info: /[a-z]+-a-z]+-a-z]+-pid\d+-\d+/ }
Das Problem ist, dass die /[a-z]+-/
kann 1 Mal wiederholt erhalten, 2 mal und 3-mal, und es macht es schwer, einen konsistenten gemeinsamen Regex für alle Fälle zu erhalten. Der einzige Teil, der in allen Routen konstant ist, ist der letzte Teil: pid234-234
, der sich auf die Produkt-ID und eine andere sub_id bezieht.
Ich denke an etwas wie: Finden Sie alle Saiten bis Sie jedes dieser Teil (pid
), aber ich weiß nicht, wie das geht.
So etwas wie [das] hilft (https://regex101.com/r/aQ2kO4/1)? –
Sie können die Anzahl der Wiederholungen einer Gruppe als Bereich angeben, indem Sie geschweifte Klammern verwenden, z. '([a-z0-9] -) {1,4}'. –