java中的正则表达式

java中的正则表达式,java,regex,Java,Regex,如何验证单个点字符的表达式? 例如,如果我有一个表达式“trjb…fsf..ib.bi.”,那么它应该只返回索引15和18处的点。如果我使用Patternp=Pattern.compile(“(\\)+”)我明白了 4 .... 11 .. 15 . 18 . 试一试 Pattern.compile(“(?Try Pattern.compile(“(?在字符串的开头和结尾添加一个空格,然后使用该模式 "[^\\.]\\.[^\\.]" 在字符串的开头和结尾添加一个空格,然后使用该模式 "[^

如何验证单个点字符的表达式? 例如,如果我有一个表达式
“trjb…fsf..ib.bi.”
,那么它应该只返回索引15和18处的点。如果我使用Pattern
p=Pattern.compile(“(\\)+”)我明白了

4 ....
11 ..
15 .
18 .
试一试

Pattern.compile(“(?Try


Pattern.compile(“(?在字符串的开头和结尾添加一个空格,然后使用该模式

"[^\\.]\\.[^\\.]"

在字符串的开头和结尾添加一个空格,然后使用该模式

"[^\\.]\\.[^\\.]"

你需要使用消极的观察


类似于
Pattern.compile((?您需要使用负环视


类似于
Pattern.compile((?这似乎可以做到这一点:

String input = "trjb....fsf..ib.bi.";
Pattern pattern = Pattern.compile("[^\\.]\\.([^\\.]|$)");
Matcher matcher = pattern.matcher(" " + input);
while (matcher.find()) {
    System.out.println(matcher.start());
}
输入前面的额外空间有两个作用:

  • 允许将
    检测为输入字符串的第一个字符
  • matcher.start()
    偏移1以说明匹配的
    前面的字符
  • 结果是:

    15
    18
    

    这似乎起到了作用:

    String input = "trjb....fsf..ib.bi.";
    Pattern pattern = Pattern.compile("[^\\.]\\.([^\\.]|$)");
    Matcher matcher = pattern.matcher(" " + input);
    while (matcher.find()) {
        System.out.println(matcher.start());
    }
    
    输入前面的额外空间有两个作用:

  • 允许将
    检测为输入字符串的第一个字符
  • matcher.start()
    偏移1以说明匹配的
    前面的字符
  • 结果是:

    15
    18
    

    在结尾处也添加一个空格…:)并在结尾处也添加一个空格…:)Amal,u pl能否解释该模式。我无法获得“.”字符前面没有“.”且后面没有“.”的表达式匹配项。请参阅Amal,u pl能否解释该模式。我无法获得“.”字符前面没有“.”且后面没有“.”的表达式匹配项。请参阅