我有一种情况,我需要根据条件将字符串解析为几组
例如下面的内容;
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
好消息,如果您可以对组的数量进行合理的限制,并且可以添加一些代码来标识空的尾随组,那么这可能会有所帮助:
([^;]*);?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?;?([^;]*)?