符号这是我的字符串|的行为在正则表达式
String s = "asadsdas357902||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC";
我分裂它作为
String a[] = s.split(s, i);
输出:ⅰ阵列的= 0
| | 1 9 0 | | R U E R A C H E L L E | | S T | | | L E S C È D R E S | J 7 T 1 J 9 | Q C
首先两个索引都为空NAD然后每个索引有一个字符。
在i = 1时,输出为整个原始字符串
asadsdas357902||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC
当i = 2,输出是
||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC
阵列的第一索引是空的,第二个包含来自第一子串|符号
当i = 3,输出是
||190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC
第一两个索引都为空和最后一个索引具有相同的子串作为对于i = 2
当i = 4,输出是
| |190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC
前两个指标空,下一个包含管道和持续其余
当i = 5时,输出为
| | 190||RUE RACHELLE||ST|||LES CÈDRES|J7T1J9|QC
第一个两个空的,下两个管道字符和最后剩下的。
为I值的增加,输出
first two indexes empty
next all indexes except last contains one character each
last index contains the remaining string
我的问题是
- 为什么不考虑第一管道符号之前的第一个字?
- 为什么它让前两个索引为空,除了1以外的每个值?
- 模式在这里是相同的字符串,那么在这里匹配什么以及输出如何来?
而另一件事是,如果我与任何其他符号代替管符号如@或!或%,输出是
array length is 2 with both indexes has empty strings. this is for i>=2
对于i = 0
the array length is also 0
对于i = 1
the array length is 1 containing the whole string.
它是否服用管符号作为一个特殊的正则表达式的符号?
任何帮助明显。
's.split(S,I)' - 你为什么要使用字符串分割本身?这真是奇怪。 – porges 2012-03-29 06:20:58
是的,它的不寻常,但学习正则表达式,我只是试验它,但现在混淆了行为。 – 2012-03-29 06:26:33