我有一种情况,我需要根据条件将字符串解析为几组

例如下面的内容;

01%3A%35r%07%01P%88%00;WAP_GPRS

应该是2组
%3A%35r%07%01P%88%00
WAP_GPRS

请注意,我在开始时并不关心01,并且可以有0个或多个由;分隔的子字符串。我需要他们都属于自己的小组。

另一个;
01%3A%35r%07%01P%88%00;KPN;A23B

应该是3组:
%3A%35r%07%01P%88%00
KPN
A23B

基本上,我不需要关心字母或数字排在前面。问题是将表达式分组到自己的表达式中,该表达式可以是0次或多次。含义如下
01%3A%35r%07%01P%88%00

应该也产生一组%3A%35r%07%01P%88%00

最佳答案

所以我想您需要split的正则表达式类似物。这将需要一个重复的捕获组。

坏消息是,有些人调查了类似的问题,但没有找到正确的答案:
https://stackoverflow.com/a/6836024/1665128

好消息,如果您可以对组的数量进行合理的限制,并且可以添加一些代码来标识空的尾随组,那么这可能会有所帮助:

([^;]*);?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?

09-30 14:45
查看更多