誰かがこの正規表現を説明してもらえますか?
^(?=.*prodCode=).*$
この素敵な正規表現の説明から:
NODE EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
(?= look ahead to see if there is:
--------------------------------------------------------------------------------
. any character except \n
--------------------------------------------------------------------------------
prodCode= 'prodCode='
--------------------------------------------------------------------------------
) end of look-ahead
--------------------------------------------------------------------------------
. any character except \n
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the string
編集
質問のテキストの正規表現が変更されたため、説明の最後から 2 行目は次のように変更されます。
--------------------------------------------------------------------------------
.* any character except \n (0 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
行検索位置の先頭から の前に任意の記号を配置しますprodCode=
。(?=)
位置が一致しないことを確認するだけです。したがって、あなたの状況では、行に文字列が存在する場合、そうでない場合はany symbol + prodCode=
行全体に一致し、false を返します。
これは、文字列がそのprodCode=
中に含まれている場合に一致し、完全な文字列に一致します。
別の書き方 (大まかに言えば、メソッドの戻り値を正規表現の一致として悪用) は次のようになります。
if (s.indexOf("prodCode=") != -1)
return s;