3

JavaScript 正規表現を介して次のような URI (パスと UUID を含む) を一致させたい:

/account/0006a8a6-b301-4168-b7de-964773a1ec66

私が最も近い正規表現は次のとおりです。

^\/([a-zA-Z0-9_\.~-]+)\/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})

上記のキャプチャには問題なく動作します - 一致し、2 つのグループとしてキャプチャされます。

ただし、これを URI として入力すると、次のようになります。

/account/0006a8a6-b301-4168-b7de-964773a1ec66DSSSSSS

正規表現は引き続き 2 つのグループに一致してキャプチャし、2 番目の一致は UUID のままですが、実際に一致に失敗し、最後に DSSSSS が追加されているために何もキャプチャしないようにする必要があります。これを達成するために正規表現を変更するにはどうすればよいですか?

4

2 に答える 2

3

行末アンカーを追加するのを忘れました $

^\/([a-zA-Z0-9_\.~-]+)\/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})$
于 2012-09-13T18:09:31.760 に答える
2

行頭アンカー(^)を使用しているのがわかります。エンドラインアンカー($)を使用してみてください。

^/([a-zA-Z0-9_.~-]+)/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})$
于 2012-09-13T18:11:43.387 に答える