0

我有一个字符串,它将有一个空格和 ( 或只是 (。我需要根据 (.) 的空格将字符串拆分为 2。

以下是示例字符串

1234(207) 
1234 (207)
1234 207

以上所有场景的结果都应该是。

string1=1234
string2=(207)

我在 C# 中有一个代码

Regex r = new Regex(@"(^.*?)\s+(.*?$)"); 
Match m = r.Match(strAbove);
firstPart = m.Groups[1].Value;
secondPart=m.Groups[2].Value;

上述场景的正则表达式模式是什么。

提前致谢。

4

2 回答 2

1

如果没有实际测试,看起来您有一些小问题:

Regex r = new Regex(@"^(\d+)\s*(\(\d+\))$"); 

首先, ^ 和 $ 需要超出捕获括号。空格应该是 * 而不是 +,因为它是 0 或更多,而不是 1 或更多。最后,文字括号应该被转义。

于 2012-08-29T12:29:12.000 回答
0

由于您有一个不包含括号的示例,但您希望它们在输出中,您必须在之后添加它们或相应地重新格式化您的输入字符串。我会做前者,这更容易一些。

var match = Regex.Match(s, @"^(\d+)[ (]+(\d+)";
var string1 = match.Groups[1].Value;
var string2 = "(" + match.Groups[2].Value + ")";
于 2012-08-29T12:42:29.253 回答