我想将整个标签替换为这些标签中的数字。
例如:
<o:15> My text.
<o:16> My new text.
<o:17> Another text.
更改为:
15 My text.
16 My new text.
17 Another text.
我可以通过<o:\\b\\d+\\b>
表达式找到标记中的数字,但是如何替换所有标记并添加其数字?
答案 0 :(得分:2)
您应该使用replaceAll
类的String
方法:
String newText = text.replaceAll("<o:\\b(\\d+)\\b>", "$1");
首先,我们围绕\d+
设置大括号创建捕获组,然后我们在输出中使用此组。您可以阅读有关捕获组here的更多信息。
答案 1 :(得分:0)
试试这个:
System.out.println("15 My text.".replaceAll("<o:\\b(\\d+)\\b>", "$1"));
答案 2 :(得分:0)
使用正则表达式来解析或改变标记通常被认为是一个坏主意。
这就是说,您可以使用以下内容替换您的代码:
String text = "<o:15> My text.\r\n<o:16> My new text.\r\n<o:17> Another text.";
// | start pattern
// | | group 1: any number of digits
// | | | back reference
System.out.println(text.replaceAll("<o:(\\d+)>", "$1"));
<强>输出强>
15 My text.
16 My new text.
17 Another text.
答案 3 :(得分:0)
如果你已正确制作正则表达式,那么你只需要将正则表达式分组为
<o:(\\b\\d+\\b)> and just replace the whole regex with $1
可以使用replaceAll