string1的哪个子字符串与字符串2匹配
有两个字符串。string1的哪个子字符串与字符串2匹配
String str1="Order Number Order Time Trade Number";
String str2="Order Tm";
然后我想知道STR2匹配与子在STR1。
string regex = Regex.Escape(str2.Replace(@"\ ", @"\s*");
bool isColumnNameMatched = Regex.IsMatch(str1, regex, RegexOptions.IgnoreCase);
我使用正则表达式,因为“订单以旧换新”也将匹配“订单时间”。它给出了匹配发生或不布尔值。
像str2="Order Tm"
那么它应该像在str1中那样返回,订单时间是发生匹配的子字符串。
你的问题很不明确,你的代码不能编译。
有一些问题:
- 更换了
"\ "
与@"\s*"
- 但是你应该只更换" "
没有\
- 不能使用
Regex.Escape()
这种方式。它会加倍你的\
,并导致另一个不起作用的正则表达式。例如你的\s*
将变成\\s*
- 看来你只想匹配一个单词(这是你的问题不清楚的地方)。在这种情况下,你应该对阵像
"Order|Tm"
- 要获得匹配的单词,你需要一个grouping construct:
例子:
var str1 = "Order Number Order Time Trade Number";
var str2 = "(Order|Tm)";
string regex = str2.Replace(@" ", @"\s*");
var match = Regex.Match(str1, regex);
match.Success; // results in "true"
match.Value; // results in "Order"
@ tanascius,谢谢先生,但我不明白为什么有Order | Tm? – Harikrishna 2010-04-06 12:00:07
@Harikrishna:这是一个'交替构造'。你可以看看它喜欢的网址。这意味着你的正则表达式匹配'订单'或'Tm' – tanascius 2010-04-06 12:05:25
好吧,先生,我明白了,如果有像买入/卖出的字符串,那么我怎样才能将买卖卖给那个字符串? – Harikrishna 2010-04-06 12:10:30
再次什么是问题? – mfeingold 2010-04-06 11:28:17