从字符串中提取参数的任何自定义函数? [英] Any custom function to extract parameters from strings?
本文介绍了从字符串中提取参数的任何自定义函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我曾经遇到VB6中的一个函数,该函数接收了3个参数Parameter,Match和Delimiter,它们可以从给定的字符串中提取信息,如下所示:
SiteAddress = XXXX; UID = XXXX; PWD = XXXX
例如,SiteAddress是一个参数,;是分隔符,=是匹配。我想知道是否有人可以帮助我用C#编写一个。
解决方案
为什么自定义函数?尝试使用 StringDictionary = System.Collections.Specialized.StringDictionary;
// ...
< span class =code-keyword> static StringDictionary ParseKeyValues( string source, char parameterDelimiter , char keyValueDelimiter){
StringDictionary result = new StringDictionary();
string [] parameters =
source.Split(
new char [] {parameterDelimiter},
System.StringSplitOptions.RemoveEmptyEntries);
foreach (字符串参数 in 参数){
string [] pair = parameter.Split( new char [] {keyValueDelimiter});
string key = pair [ 0 ];由于之前的拆分选项, // 始终存在
string value = null ;
if (pair.Length > 1 )
value = pair [ 1 ];
result.Add(key, value ); // 可能会抛出异常
} // loop
return 结果;
} // ParseKeyValues
正则表达式解决方案存在,但会更加丑陋,因为参数数量未知。
-SA
I once came across a function in VB6 that received 3 parameters "Parameter","Match" and "Delimiter" that could extract information from a given string as follows:
SiteAddress=XXXX;UID=XXXX;PWD=XXXX
In which SiteAddress, for example, is a parameter, ";" is the delimiter and "=" is the match. I wonder if anyone can help me have one written in C#.
解决方案
Why "custom functions"? Try something likeusing StringDictionary = System.Collections.Specialized.StringDictionary; // ... static StringDictionary ParseKeyValues(string source, char parameterDelimiter, char keyValueDelimiter) { StringDictionary result = new StringDictionary(); string[] parameters = source.Split( new char[] { parameterDelimiter }, System.StringSplitOptions.RemoveEmptyEntries); foreach (string parameter in parameters) { string[] pair = parameter.Split(new char[] { keyValueDelimiter }); string key = pair[0]; // always exist due to previous split options string value = null; if (pair.Length > 1) value = pair[1]; result.Add(key, value); // may throw exception } //loop return result; } //ParseKeyValues
A Regular Expression solution exist but will be uglier, as the number of parameters is unknown.
—SA
这篇关于从字符串中提取参数的任何自定义函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文