有人可以解释这个正则表达式吗?
^(?=.*prodCode=).*$
答案 0 :(得分:9)
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
修改强>
由于问题文本中的正则表达式已更改,解释中的倒数第二行将更改为:
--------------------------------------------------------------------------------
.* any character except \n (0 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
答案 1 :(得分:1)
从行的searhinng开始,在prodCode=
之前定位任何符号。 (?=)
表示只检查位置不匹配。所以在你的情况下,如果在行中存在类似any symbol + prodCode=
的字符串,那么我们匹配整行,否则返回false。
答案 2 :(得分:1)
如果字符串在其中的任何位置都有prodCode=
并匹配整个字符串,则匹配。
编写它的另一种方法(粗略地说,滥用方法返回值作为正则表达式)将是
if (s.indexOf("prodCode=") != -1)
return s;