Car*_*los 2 java regex string math split
我想要一些关于如何根据算术运算将字符串拆分为N个单独字符串的指导; 例如string.length()/ 300.
我知道用分隔符这样做的方法
testString.split(",");
Run Code Online (Sandbox Code Playgroud)
但是如何使用该split
方法使用贪婪/不情愿/占有量词?
更新:根据要求,我希望实现的类似示例;
String X = "32028783836295C75546F7272656E745C756E742E657865000032002E002E005C0"
Run Code Online (Sandbox Code Playgroud)
导致X/3 (或多或少......手工完成)
X[0] = 32028783836295C75546F
X[1] = 6E745C756E742E6578650
x[2] = 65000032002E002E005C0
Run Code Online (Sandbox Code Playgroud)
不要担心解释如何将它放入数组,我没有问题,只关于如何不使用分隔符进行拆分,而是算术运算
Bar*_*ers 10
您可以通过拆分来实现(?<=\G.{5})
,将字符串aaaaabbbbbccccceeeeefff
拆分为以下部分:
aaaaa
bbbbb
ccccc
eeeee
fff
Run Code Online (Sandbox Code Playgroud)
的\G
匹配以前匹配发生的位置(零宽度)位置.最初,\G
从字符串的开头开始.请注意,默认情况下,.
元字符与换行符不匹配,因此如果您希望它与每个字符匹配,请启用DOT-ALL : (?s)(?<=\G.{5})
.
演示:
class Main {
public static void main(String[] args) {
int N = 5;
String text = "aaaaabbbbbccccceeeeefff";
String[] tokens = text.split("(?<=\\G.{" + N + "})");
for(String t : tokens) {
System.out.println(t);
}
}
}
Run Code Online (Sandbox Code Playgroud)
可以在线测试:http://ideone.com/q6dVB
编辑
由于您要求提供有关正则表达式的文档,以下是建议的正则表达式包含的主题的特定教程:
\G
,见:http://www.regular-expressions.info/continue.html(?<=...)
,见:http://www.regular-expressions.info/lookaround.html{...}
,请参阅:http://www.regular-expressions.info/repeat.html 归档时间: |
|
查看次数: |
4661 次 |
最近记录: |