有两个字符串。
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);
我正在使用正则表达式,因为“Order Tm”也会匹配“Order Time”。它会给出匹配发生或不匹配的bool值。
与str2="Order Tm"
类似,它应该像 str1一样返回,订单时间是发生匹配的子字符串。
答案 0 :(得分:2)
您的问题非常清楚,您的代码无法编译 有一些问题:
"\ "
替换为@"\s*"
- 但您应该仅" "
替换\
Regex.Escape()
。它会使你的\
加倍并导致另一个无法正常工作的正则表达式。例如,您的\s*
将成为\\s*
"Order|Tm"
示例:
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"