Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 其他正则表达式模式_Java_Regex - Fatal编程技术网

Java 其他正则表达式模式

Java 其他正则表达式模式,java,regex,Java,Regex,是否存在包含(第1部分|第2部分|……)和[第2部分]的正则表达式模式: (part1 | part2)将匹配第1部分或第2部分,例如leav(e | ing)匹配离开和离开 [部分]是一个可选词,例如cat[s]将匹配cat和cats 我还想确定每个模式中必须包含的单词,例如give cat[s]将匹配give cat和give cat\bcats?\b将匹配两个cat,cat,但在cate中不匹配cat \blav(?:e|ing)\b将同时匹配离开和离开 \b部分(?:1 | 2 | 3)

是否存在包含(第1部分|第2部分|……)和[第2部分]的正则表达式模式:

(part1 | part2)将匹配第1部分或第2部分,例如leav(e | ing)匹配离开和离开

[部分]是一个可选词,例如cat[s]将匹配cat和cats


我还想确定每个模式中必须包含的单词,例如give cat[s]将匹配give cat和give cat

\bcats?\b
将匹配两个
cat
cat
,但在
cate
中不匹配
cat

\blav(?:e|ing)\b
将同时匹配
离开
离开

\b部分(?:1 | 2 | 3)?\b
将与
第1部分
第2部分
第3部分
部分
匹配,但不与
分开
合作伙伴

解释

\b     // Forces a word boundary so that it does not match in the middle of a word like part in apart
(?:    //Non capturing group so that we do not have extra groups in the matches, using this is a matter of choice
|      //OR
?      //Previous char in cats previous group in (?:1|2|3) is optional

请注意,在初始化正则表达式字符串时,您需要在
\b
中转义
\

我不理解您的问题。可以向我们展示示例输入和输出以及正则表达式如何应用于它吗?要在正则表达式中指定可选位,可以使用
。例如,猫?将匹配“猫”和“猫”(第1部分)?第2部分将匹配“第1部分2”和“第2部分”
leav(e|ing)(?>\\scats?
将匹配规范-如它所示。