【发布时间】:2021-03-29 02:26:16
【问题描述】:
我有一个字符串,在字符串末尾使用正则表达式从中提取数字。
字符串:
'0 DB'!$B$460
子字符串:
460
我解决这个问题如下:
String str = "'0 DB'!$B$460";
String sStr = str.replaceAll(".*?([0-9]+)$", "$1");
现在我有一个不同类型的字符串,我想从中提取某些范围。
字符串:
'0 DB'!$U$305:$AH$376
在这里,我将提取冒号左侧和冒号右侧的某些区域。
美元符号 ($) 之间的区域和它后面的数字。各个区域可以具有不同的长度。第一个美元符号之前的部分可以由字母和数字组成
所以这将是 4 个子字符串。
子字符串:
1: 上
2:305
3:啊
4:376
我也在考虑用正则表达式解决这个问题。但不幸的是,我在这方面的知识有限。
有没有人知道如何使用正则表达式解决这个问题?还是有其他方法?
谢谢
【问题讨论】:
-
您可以使用 4 个捕获组
^.*?([A-Z])\$(\d+):\$([A-Z]+)\$(\d+)$regex101.com/r/SHMmlM/1 或两个字符串的子部分^.*?([A-Z])\$(\d+)(?::\$([A-Z]+)\$(\d+))?$regex101.com/r/r5gVSC/1
标签: java regex string substring