[英]String Matching
我有一个弦
String mainString="///BUY/SELL///ORDERTIME///RT///QTY///BROKERAGE///NETRATE///AMOUNTRS///RATE///SCNM///";
现在我有另一个琴弦
String str1= "RT";
仅应与RT
它是字符串mainString
子字符串) mainString
而不能与ORDERTIME
它也是字符串mainString
子字符串) mainString
。
String str2= "RATE" ;
和RATE
(STR2)应与匹配RATE
是串子mainString
但与NETRATE
这也是串串mainString
。
我们怎么做?
与"///RT///"
和"///RATE///"
匹配。
据我了解您的问题,您想将///
之间的字符串作为分隔符。
如果您寻找str
您只需要做
Regex.Match(mainString, "(^|///)" + str + "(///|$)");
这可能会为您提供一些线索-几乎没有真正的代码质量,此劣质解决方案仅需5分钟即可完成工作,但确实可以满足您的需求。 闻到很多警告。
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
namespace test {
class Program {
static void Main(string[] args) {
String mainString="//BUY/SELL//ORDERTIME//RT//QTY//BROKERAGE//NETRATE//AMOUNTRS//RATE//SCNM//";
Hashtable ht = createHashTable(mainString);
if (hasValue("RA", ht)) {
Console.WriteLine("Matched RA");
} else {
Console.WriteLine("Didnt Find RA");
}
if (hasValue("RATE", ht)) {
Console.WriteLine("Matched RATE");
}
Console.Read();
}
public static Hashtable createHashTable(string strToSplit) {
Hashtable ht = new Hashtable();
int iCount = 0;
string[] words = strToSplit.Split(new Char[] { '/', '/', '/' });
foreach (string word in words) {
ht.Add(iCount++, word);
}
return ht;
}
public static bool hasValue(string strValuetoSearch, Hashtable ht) {
return ht.ContainsValue(strValuetoSearch);
}
}
}
我不知道它是否每次都能工作,但是我已经尝试过了,现在在这种字符串匹配中它可以工作。 我想知道是否可以,请给我建议。
str1 = str1.Insert(0, "///");
str1=str1.Insert(str1.Length,"///");
bool Result = mainString.Contains(str1);
Linq to Object怎么样?
String mainString="///BUY/SELL///ORDERTIME///RT///QTY///BROKERAGE///NETRATE///AMOUNTRS///RATE///SCNM///";
String searchTerm = "RT";
String[] src = mainString.split('///');
var match = from word in src where
word.ToLowerInvariant() == searchTerm.ToLowerInvariant()
select word;
我附近没有VS,因此无法对其进行测试,但是应该与此类似。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.