有人可以解释这个正则表达式的行为吗?

时间:2015-10-25 20:29:34

标签: java regex

String [] numbers =s.split("(?<=\\G.{50})");

我知道什么是分裂,但为什么我需要[],这些是做什么的?最重要的是,有人可以彻底解释"(?<=\\G.{50})"吗?

1 个答案:

答案 0 :(得分:2)

对于在提供的正则表达式上分隔输入字符串后返回的任何匹配,返回的数组将包含split函数返回的每个结果的一个String。

这里提供的正则表达式是利用零宽度正向观察,如https://docs.oracle.com/javase/8/docs/api/index.html?java/util/regex/Pattern.html所述。它正在搜索上一个匹配结束前的任何内容(\G - 使用另一个\作为Java字符串文字进行转义),后跟任意50个字符。

简而言之 - 这只是将s的输入分成50个字符的块。 (不确定我是否会使用正则表达式 - 但它有效......)