Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人能解释一下这个正则表达式吗^(?=.*prodCode=)*$_Java_Regex - Fatal编程技术网

Java 有人能解释一下这个正则表达式吗^(?=.*prodCode=)*$

Java 有人能解释一下这个正则表达式吗^(?=.*prodCode=)*$,java,regex,Java,Regex,有人能解释一下这个正则表达式吗 ^(?=.*prodCode=).*$ 发件人: 编辑 由于问题文本中的正则表达式已更改,解释中倒数第二行将更改为: -------------------------------------------------------------------------------- .* any character except \n (0 or more times (matching

有人能解释一下这个正则表达式吗

^(?=.*prodCode=).*$
发件人:

编辑

由于问题文本中的正则表达式已更改,解释中倒数第二行将更改为:

--------------------------------------------------------------------------------
  .*                     any character except \n (0 or more times (matching
                         the most amount possible))
--------------------------------------------------------------------------------

从searhing行开始,将所有符号定位在
prodCode=
之前<代码>(?=)表示只检查位置不匹配。因此,在您的情况下,如果行中存在字符串,如
any symbol+prodCode=
,则我们匹配整行,如果不匹配,则返回false。

如果字符串中的任何位置都有
prodCode=
,并且匹配完整的字符串,则此匹配

编写它的另一种方法(粗略地说,滥用方法返回值,如regex matcch)是


在的标题中有
^(?=.*prodCode=).$
question@Serjio-怎么样。它会将倒数第二行的解释更改为:“除\n(0次或更多次(匹配尽可能多的数量))之外的任何字符”,谢谢!!因此,这将匹配以prodCode=XXXX开头的行,但与#prodCode=XXXX或someProdCode=XXXX不匹配。@rtv-正则表达式中的“prodCode=”之前有一个“.”,因此“prodCode=”之前必须(恰好)有一个字符。它不会匹配以“prodCode=”开头的行,但它会匹配以“#prodCode=”开头的行。@TedHopp-我认为。*是零个或多个字符,是不是错了?因此应用于
“XprodCode=9”
的模式将返回
“X”
?没有。我以前的回答是基于原始问题中的损坏且格式不正确的正则表达式。我已经修改了它,在标题和问题主体上有不同的regExp。请改正!请注意,它与
^.*prodCode=.*$
完全相同,这里的前瞻性是毫无意义的。我认为这个正则表达式与任何东西都不匹配。第一个“*”将贪婪地匹配行中的所有内容,并且永远不会有任何内容可以匹配“prodCode=”。Ted,问题中的正则表达式具有前瞻性的第一个
*
,因此
*
不会带走任何可能使
prodCode=
匹配的内容。Keppil的正则表达式也应该工作,因为引擎将回溯并尝试使
prodCode=
匹配。这是否回答了您的问题?
--------------------------------------------------------------------------------
  .*                     any character except \n (0 or more times (matching
                         the most amount possible))
--------------------------------------------------------------------------------
if (s.indexOf("prodCode=") != -1)
    return s;