2009-08-23 9 views
1

後、私は、次のURLを考えると、いくつかのREGEXヘルプ を探していますすべてのもの:http://news.cnet.com/8301-13924_3-10315534-64.html?part=rss&subj=news&tag=2547-1_3-0-20REGEXのColdFusionヘルプ - URLに?そして

は以下を得るREGEXは何ですか:

http://news.cnet.com/8301-13924_3-10315534-64.html

このように削除しますか?ジャストマッチ(最初のキャプチャグループから2番目のキャプチャグループを取る

^([^?]+)

:、すべて

それ後おかげで、B

答えて

1

は、この正規表現は、トリックを行います一致した場合は常に元の文字列となります)。疑問符の前にすべてをあなたに残して

myURL = REReplace(myURL,"\?.*$","") 

を:

2

ColdFusionでは、あなたは置き換える正規表現を使用することができます。

10

あなたは確かに、このために正規表現を使用することができますが、疑問符で区切られたリストの最初の部分を見つけ

listfirst(theurl, '?')

を使用する方が効率的でしょう。

+1

良いアイデアです。非常にcoldfusion-yのやり方です! – Kip

+0

+1すてきな簡単な解決策です。 CFのリスト*()関数は、明白でない方法で使用すると非常に強力です。 – ale

+0

私は同意する、私はいつも正規表現の前に関数をリストすると思う。 –

0

@Ben Doom:私が間違っていない場合、#url#変数は複雑なオブジェクトであり、文字列またはリストとして扱うことはできません。クエリ文字列の前にすべてを取得する方法は次のとおりです。

<cfset myURL = "http://" & #cgi.HTTP_HOST# & #cgi.SCRIPT_NAME# /> 
+0

明らかに、私はURL範囲でこの操作を試みるつもりはありませんでした。私はunthinkingly URLを質問を保持する変数を意味するために 'url'を使用しました。 –

+0

ええ、あなたは私が自分の答えを書いた後に、あなたが範囲自体ではなくURLに変数が格納されていると言いました。素晴らしい答えですが、私はそのテクニックを使うことを考えなかったでしょう。 –