2011-01-25 10 views
0

私は以下のシーケンスを検出しようとしています... #hl=b&xhr=aここで、bは何かに等しく、aは何でも同じです。正規表現に関するヘルプ

私は以下を持っています...しかし、それは動作しているようには見えません... (#hl=.+&xhr=)誰かがなぜ知っていますか?

私はjavascriptを使用しています。値aとbはアルファベットの文字です。

+0

入力の例を挙げてもよいが、そうでないものはありますか? – FrustratedWithFormsDesigner

+2

正規表現の質問には、目的のプログラミング言語でタグ付けする必要があります。これは、ライブラリが異なるためです(regexタグのツールチップを読んでください)。 – miku

+2

»動作しません。あなたが何を期待しているのか、どのように観察された行動があなたの期待に合わないのかを述べてください。私はちょうどあなたが投稿した文字列に対してあなたの正規表現をテストし、それがマッチしました。あなたはそれから部分文字列を抽出したいですか(多分* a *と* b *)?その場合、あなたのかっこは異なっている必要があります。 – Joey

答えて

2

(#hl=.+&xhr=.+)、あなたは2番目の.+が見つかりませんでした。あなたの正規表現エンジンに応じて、エスケープルールも表示する必要があります。しばしば、中かっこ+をエスケープする必要があります。とにかく文字列全体にマッチさせたいだけなら、とにかく中括弧は必要ありません。

0

あなたは、より良い答えを得るために、より具体的にする必要があります

  • あなたが正規表現をどのようなプログラミング言語を使用していますか?
  • abにはどのような値がありますか? .が一致しないということは、改行が含まれていることを意味します。
  • abの値を取得しますか?

    /#h1=(.+)&xhr=(.+)/ 
    

    これは、文字列#h1=a&xhr=bにマッチし、文字列からab値を選択します:

は今、それがすべてと言われていますことを、いくつかの仮定での正規表現の上に移動することができます。それは貪欲なので、擬似URLにキーと値のペアがある場合(私はそれがハッシュタグとしてURLエンコードされた文字列であると仮定します)、それらはbにマッチします。

#h1=a&xhr=b&foo=bar 

b&foo=barと一致します。

正規表現は、#h1=&xhr=の前に来るものとします。 #、&と=を仮定

0

は特殊文字です、どのようにこの正規表現について:

#h1=([^#&=]+)&xhr=([^#&=]+)

あなたは必ずあなたのキー/値のペアです間に何もせずにこの順に常にありますか(?)?