2012-08-23 10 views
16

私は文字列を持っています。最後はindex.php?test=1&list=ULまたはindex.php?list=UL&more=1のように異なります。私が探しているのは&list=です。正規表現では、文字列の末尾または特定の文字と一致します

文字列の途中であっても最後であっても、どのように一致させることができますか?今のところ私は[&|\?]list=.*?([&|$])を持っていますが、([&|$])の部分は実際には機能しません。私はそれを&または文字列の最後に一致させるために使用しようとしていますが、文字列部分の最後は機能しません。したがって、このパターンは2番目の例に一致しますが最初は一致しません。

答えて

34

用途:

/(&|\?)list=.*?(&|$)/ 

(注)括弧式を使用する場合、(someの例外を除いて)、その中のすべての文字が文字通りに解釈されようとしていること。つまり、[&|$]は、文字の&,|、および$と一致します。

+0

ありがとうございます。 「解釈された文字通り」の部分は、角括弧を認識していませんでした。非常に便利!したがって、 '|'を使用して2つ以上の文字を区切るには '()'が必要ですか? – Gary

+1

確かに、代替案をグループ化( '()'する必要があります)。 –

+0

[私のために働いていません](https://jsfiddle.net/jmqffocL/) –

関連する問題