2016-12-09 21 views
1

私は、 '#'で始まるサブストリングを意味するURLのフラグメント部分に一致させたいと思います。正規表現に一致するURL

URLはではありません。にはフラグメントとクエリがあります。だから、 '?'最初の '#'に先行する場合、サブストリング "#..."は一致しないはずです。

01:ノーフラグメントとURLの

http://exampleurl.com:8080/#this?whole#thing?is#a?fragment

http://exampleurl.com:8080#this?whole#thing?is#a?fragment

http://exampleurl.com#this?whole#thing?is#a?fragment

例:フラグメントとURL(S)の

http://exampleurl.com:8080/?this?whole#thing?is#NOT?a#fragment

正規表現は、最初の例では"#this?whole#thing?is#a?fragment"と一致する必要がありますが、2番目の例では何も一致していなければなりません。前に述べたように、 '?'最初の '#'の前には、フラグメントではなくクエリとみなされます。

試み:

"#+.+$" 

上記の正規表現は、最初の例に関して正しく一致し、それはまた、望ましくない第二の例におけるサブストリング"#thing?is#NOT?a#fragment"と一致します。私はそれを防ぐために適切な警備員を入れる方法がわからない。先行する。

ありがとうございます!

答えて

2

これはすべてのケースに正しく一致しました。結果は最初のグループにあります。ここhttps://regex101.com/r/p6tsh2/1この作品

+0

/^[^#?]*(#.*)/gm 

チェック結果!ありがとう! –

関連する問題