正则匹配的问题

目标字符串是:12.3....ed....6756....434dsfsd....
需要以....来分组,和用split分组字符串一样,但是想用正则的方法进行分组。
这个正则表达式该怎么写呢?

阅读 3k
6 个回答

正则我不熟,现学现卖...

这样试一下?

.+?\.{4}

共找到 4 处匹配:
12.3....
ed....
6756....
434dsfsd....

.split(/.{4}/)

这样分割产生的结果最后一个元素是空字符串

正则表达式: (\.{4})

        String[] attr = "12.3....ed....6756....434dsfsd....".split("(\\.{4})");
String string = "12.3....ed....6756....434dsfsd....";

Pattern pattern = Pattern.compile("(\\.{4})");
Matcher matcher = pattern.matcher(string);
System.out.println(matcher.matches());
int pre = 0;
//查找符合规则的子串
while (matcher.find()) {
    //获取 字符串
    System.out.println(matcher.group());
    //获取的字符串的首位置和末位置
    System.out.println(string.substring(pre, matcher.start()));
    pre = matcher.end();
}
新手上路,请多包涵

分组的个数应该是确定的,没发写不确定个数的分组吧

clipboard.png

<?php
$str = "12.3....ed....6756....434dsfsd....";
preg_match_all('/(.*?)\.\.\.\./',$str,$b);
print_r($b);
?>
输出:
Array
(
    [0] => Array
        (
            [0] => 12.3....
            [1] => ed....
            [2] => 6756....
            [3] => 434dsfsd....
        )

    [1] => Array
        (
            [0] => 12.3
            [1] => ed
            [2] => 6756
            [3] => 434dsfsd
        )

)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进