Java 如何检查字符串是否是regx模式的开始?
假设我有一个正则表达式“abc def-[a-zA-Z]-ghi”。现在我得到了一个字符串,我想看看这个sting是否是这个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 // 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)?)?)?)?)?)?)?$