これらのURLを考えると:
1: http://site/page-name-one-123/
2: http://site/page-name-set2/
3: http://site/set20
私は最後のURLセグメントに適用されるこの式を書きました:
(?(?<=set[\d])([\d]+)|([^/]+))
私がやりたいのは、URLセグメントが「set」で始まり、直後の数字である場合にのみ、すべての数字の後に「set」が続くことです。それ以外の場合は、セグメント全体(スラッシュを除く)を使用します。
この正規表現を書いたので、「/」以外の文字と一致します。テストステートメントで何か間違ったことをしていると思います。誰かが私を正しく指摘できますか?
ありがとう
更新Joshの入力 のおかげで、少し遊んでみたところ、これが私のニーズにより適していることがわかりました。
set-(?P<number>[0-9]+)|(?P<segment>[^/]+)