gpt4 book ai didi

java - 正则表达式-提取不同的字符串

转载 作者:行者123 更新时间:2023-12-01 04:10:59 25 4
gpt4 key购买 nike

我有这个字符串:

Date Description Amount Price Charge Shares Owned
04/30/13 INCOME REINVEST 0.0245 $24.66 $12.34 1.998 1,008.369
05/31/13 INCOME REINVEST 0.0228 $22.99 $12.22 1.881 1,010.250
06/28/13 INCOME REINVEST 0.0224 $22.63 $11.97 1.891 1,012.141

我想提取字符串中的日期“matchedDate”类似的描述,在本例中为“INCOME REINVEST”,“INCOME REINVEST”“INCOME REINVEST”

数组中的金额恰好为:“0.0245”,“0.0228”,“0.0224”

数组中的价格:“24.66”、“22.99”、“22.63”

数组中的电荷:“12.34”,“12.22”,“11.97”

数组中的份额:“1.998”,“1.881”,“1.891”

我不需要对应于 1,008.369,1,010.250 和 1,012.141 的最后一部分“拥有”

到目前为止,我能够通过以下方式成功提取日期:

String regex="[0-9]{2}/[0-9]{2}/[0-9]{2}";
Pattern dateMatch = Pattern.compile(regex);
Matcher m = dateMatch.matcher(regString);
while (m.find()) {
String[] matchedDate=new String[] {m.group()};
for(int count=0;count<matchedDate.length;count++){
sysout(matchedDate[count]
}

regString 是我试图进行匹配的字符串,即我在第一个 block 中解释的表。

我不需要 $ 符号,因此我们可以将数字存储在整数数组中。我认为我们必须确定某种空间和美元的模式才能做到这一点。

如有任何帮助,我们将不胜感激

最佳答案

这应该与您需要的部分匹配:

(\d{1,2}/\d{1,2}/\d{1,2}).+?([\d.]+)\s\$(\S+)\s\$(\S+)\s(\S+)

解释:

(\d{1,2}/\d{1,2}/\d{1,2}) - capture date
.+? - match anything up to next number
([\d.]+)\s - capture Amount but match space following it
$(\S+)\s - capture Price but match space following it
$(\S+)\s - capture Charge but match space following it
(\S+) - capture Shares

关于java - 正则表达式-提取不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19926900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com