我有一个像这样的字符串:
personname=aanch&personaddress=Jammu & Kashmir&personmobile=9876543210
我想要的输出是:
personname=aanch
personaddress=Jammu & Kashmir
personmobile=9876543210
是否可以使用正则表达式来拆分字符串&
并获得上面的结果?
通过重新编辑问题,我确实看到了一个可能实际可行的解决方案:
splitArray = Regex.Split(subjectString,
@"& # Split on a &
(?= # but only if it's followed by...
\w+ # a series of alphanumeric characters
= # and an equals sign
) # End of lookahead assertion",
RegexOptions.IgnorePatternWhitespace);
编辑 - 随着问题的改变
var regex = new Regex(@"&(?<=[^&=]+=)")
哪个故障是
& - 匹配 &
(?<=[^&=]+=) - 匹配但不包括至少一个不是 & 或 = 后跟 = 的字符
或者,如果您实际上在名称和值之后,您可以执行以下操作
var regex=new Regex(@"(?>^|&)(?<name>.*?)=(?<value>.*?)(?=$|&[^&]+?=)");
var text="personname=aanch&personaddress=Jammu & Kashmir&personmobile=9876543210";
foreach (Match match in regex.Matches(text)) {
var name=match.Groups["name"].Value;
var value=match.Groups["value"].Value;
// Do something with values
}
但是为什么需要 reg-ex 来拆分字符串。您可以使用普通的 C# 字符串拆分功能来获得所需的结果
string text = "ABC&DEF&GHI&JK&L&MNO&P&Q"
var splitString = text.split(text,"&");
拆分后的字符串将作为数组存储在splitString