我正在编写代码,我需要将一个字符串拆分为3个不同的部分,每个部分都需要自己的分隔符来获取单个部分.我对正则表达式并不擅长,我看过的教程并没有真正解释这一点.所以,如果你能把我推向正确的方向,如果你有答案解释它的每一部分都会很棒!
我的意见是
1 imported bottle of perfume at 27.99
1 bottle of perfume at 18.99
1 packet of headache pills at 9.75
1 box of imported chocolates at 11.25
Run Code Online (Sandbox Code Playgroud)
我想要的输出是每个输出3个字符串.
"1" "imported bottle of perfume" "27.99"
Run Code Online (Sandbox Code Playgroud)
码:
String pattern = "[(\\d)][(\\w)][(\\d)]";
String[] splits = data[i].split(pattern);
Run Code Online (Sandbox Code Playgroud)
您可以在以空格开头的数字或at字符串开头的空格上拆分.你会使用环顾四周.
data[i].split("(?<=\\d)\\s+|\\s+at\\s+");
Run Code Online (Sandbox Code Playgroud)
(?<=...)是后视的语法.同样,(?=...)为了预见.环视是0长度的断言.他们只是检查特定模式之后或之前是否存在模式.
那么,(?<=\\d)\\s+将搜索\\s哪个前面有一个数字 - \\d.
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |