Regex 有没有一种方法可以在结尾处捕捉任何角色和换行符?

Regex 有没有一种方法可以在结尾处捕捉任何角色和换行符?,regex,java-8,Regex,Java 8,我正在做这个TDD教程练习,它围绕着创建和测试字符串计算器展开。我正在创建自定义分隔符的步骤。输入应该是这样的/[delimiter]\n[数字…]接受的输入应该是这样的/%\n5%2%5 我一步一步地添加到正则表达式中,结果遇到了麻烦。我当前仅尝试匹配/[分隔符]\n部分。如何在保留结束换行符的同时匹配任何字符(包括换行符)?例如,*不断吞噬整个字符串,+?只接受一个字符。我还尝试使用/.*(=\n),但仍然没有匹配项。我怀疑我必须使用前瞻,但如何正确地实现它 与此问题的联系是。感谢所有的指点

我正在做这个TDD教程练习,它围绕着创建和测试字符串计算器展开。我正在创建自定义分隔符的步骤。输入应该是这样的
/[delimiter]\n[数字…]
接受的输入应该是这样的
/%\n5%2%5

我一步一步地添加到正则表达式中,结果遇到了麻烦。我当前仅尝试匹配
/[分隔符]\n
部分。如何在保留结束换行符的同时匹配任何字符(包括换行符)?例如,
*
不断吞噬整个字符串,
+?
只接受一个字符。我还尝试使用
/.*(=\n)
,但仍然没有匹配项。我怀疑我必须使用前瞻,但如何正确地实现它


与此问题的联系是。感谢所有的指点,祝您度过愉快的一天。

为什么不只匹配数字,然后将组添加到一起

String input = "//[***]\n1***2*\n**3";
    Pattern pattern = Pattern.compile("\\d");
    Matcher matcher = pattern.matcher(input);
    int total = 0;
    while (matcher.find()) {
        total += Integer.valueOf(matcher.group(0));
    }
    System.out.println(total);

问题的第1.3条状态尽可能简单地解决问题。匹配所有数字并将其添加到一起支持分隔符等,因为数字之间的内容无关紧要。

验证您的程序是否逐行读取数据(与sed相同)。如果没有,则应采取以下措施:

//(.*)\n\d+(\1\d+)+

  • 分隔符可以是任何字符序列

  • 要分隔的数字数量不限(在第二行)


在Java 8中,您可以使用
\R
来匹配换行符,而不管它是unix样式的
\n
还是类似Windows的
\R\n
或其他任何类型。此外,请记住,将这些正则表达式放入Java字符串文本中需要用另一个反斜杠引用每个反斜杠,因为它们在Java字符串文本中也有含义。除此之外,如果您仍然有问题,您必须提供您的代码,使我们能够重现您的问题。如果我们不得不猜的话,那对你没什么帮助。你能给我看一张照片吗?