Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 如何检查字符串是否是regx模式的开始?_Java_Regex - Fatal编程技术网

Java 如何检查字符串是否是regx模式的开始?

Java 如何检查字符串是否是regx模式的开始?,java,regex,Java,Regex,假设我有一个正则表达式“abc def-[a-zA-Z]-ghi”。现在我得到了一个字符串,我想看看这个sting是否是这个regx的第一部分。以下是一些预期结果 abc // true abd // false abc-def // true abc-def-a // true abc-def-aghi // true abc-def-a-ghi // true abc-def-a-jkl //false abc-def-a-ghi-j // false 这是可能的想法吗?谢谢。这个正则表达

假设我有一个正则表达式“abc def-[a-zA-Z]-ghi”。现在我得到了一个字符串,我想看看这个sting是否是这个regx的第一部分。以下是一些预期结果

abc // true
abd // false
abc-def // true
abc-def-a // true
abc-def-aghi // true
abc-def-a-ghi // true
abc-def-a-jkl //false
abc-def-a-ghi-j // false
这是可能的想法吗?谢谢。

这个正则表达式
^abc(-def(-a-zA-Z](-ghi)??)?$
就可以了。末尾的美元符号使其与行的末尾相匹配。每个连字符部分都是可选的,接下来的每个部分都嵌套在一组参数中,以确保这些组按该顺序显示

链接到


如果您还想匹配
abc def aghi
(尽管我假设这是一个输入错误),您只需要对正则表达式进行一个小的修改(
^abc(-def(-a-zA-Z)(-ghi)?$

,您可以将部分设置为可选的
^abc(?-def(?:-[a-zA-Z](?:--ghi)?)所以在这种情况下,即使是
a
也应该是一个有效的匹配项?如果在每个键之后进行输入测试,这
^a(?:b(?:c(?:-)(?:d(?:e(?:f(?:-)(?:a-zA-Z)(?:-(?:g(?:h(?:i)?)?)?)?)?)?)?$