Regex 有没有一种方法可以在结尾处捕捉任何角色和换行符?
我正在做这个TDD教程练习,它围绕着创建和测试字符串计算器展开。我正在创建自定义分隔符的步骤。输入应该是这样的Regex 有没有一种方法可以在结尾处捕捉任何角色和换行符?,regex,java-8,Regex,Java 8,我正在做这个TDD教程练习,它围绕着创建和测试字符串计算器展开。我正在创建自定义分隔符的步骤。输入应该是这样的/[delimiter]\n[数字…]接受的输入应该是这样的/%\n5%2%5 我一步一步地添加到正则表达式中,结果遇到了麻烦。我当前仅尝试匹配/[分隔符]\n部分。如何在保留结束换行符的同时匹配任何字符(包括换行符)?例如,*不断吞噬整个字符串,+?只接受一个字符。我还尝试使用/.*(=\n),但仍然没有匹配项。我怀疑我必须使用前瞻,但如何正确地实现它 与此问题的联系是。感谢所有的指点
/[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字符串文本中也有含义。除此之外,如果您仍然有问题,您必须提供您的代码,使我们能够重现您的问题。如果我们不得不猜的话,那对你没什么帮助。你能给我看一张照片吗?