我在文本文件中包含以下数据:
proc sort data=oneplan.cust_duplicates(dbindex=yes) out=mibatch.cust_duplicates;
from oneplan.fsa_authorised_agencies (dbindex=yes)
set oneplan.fsa_agency_permissions(where=(regulated_activity in ('103','106','107','108')));
set oneplan.customer_flags(where=(flag_id in(54,14,34)));
from oneplan.document_history (dbindex=yes)
set oneplan.product_references;
proc sort data=oneplan.fast_track_log(where=(upcase(business_entry)="INCOME VERIFICATION FAST TRACKED")) out=fast_track_log;
set oneplan.product_characteristics(rename=(value=filler)where=(characteristic_type="OFFS" ));
set oneplan.mtg_offset_benefits (where=(modified_date between &extractdate and &batchcutoff)
from oneplan.mtg_payment_options a;
from oneplan.acc_retention_risk acr;
from oneplan.acc_retention_risk_hist acr;
from oneplan.account_repay_veh rv;
from oneplan.repay_vehicle_map rvm;
from oneplan.frozen_accounts as fa left join mibatch.accounts as a
现在我需要从以oneplan.
开头并以空格结尾的每一行获取部分。
此外,如果该行有两个oneplan.
,那么每个都必须单独提取。
示例:agtut oneplan.m htyutu oneplan.j hgyut
我需要输出为:oneplan.m
和oneplan.j
答案 0 :(得分:3)
您可以使用正则表达式:
String text = ....
String regex = "(oneplan\\.\\w)\\w+\\s+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
while(matcher.find()) {
System.out.println(matcher.group(1));
}
将打印结果:
oneplan.f
oneplan.d
oneplan.m
oneplan.m
oneplan.a
oneplan.a
oneplan.a
oneplan.r
oneplan.f
如果您想要整个单词,可以将matcher.group()
与正则表达式结合使用:
"oneplan\\.\\w+\\s+"
答案 1 :(得分:0)
您可以从BufferedReader#readLine和String#startsWith String#endsWith。
开始答案 2 :(得分:0)
查看各种String.indexOf()
和String.substring()
方法。