正则表达式中的字符串操作

时间:2011-04-05 16:46:50

标签: c# asp.net regex string

我在字符串操作方面遇到问题

这是代码

string str = "LDAP://company.com/OU=MyOU1 Control,DC=MyCompany,DC=com";
Regex regex = new Regex("OU=\\w+");
var result = regex.Matches(str);
var strList = new List<string>();
foreach (var item in result)
{
    strList.Add(item.ToString().Remove(0,3));
 }
 Console.WriteLine(string.Join("/",strList));

我得到的结果是“MyOU1”而不是“MyOU1 Control”

请帮助谢谢

2 个答案:

答案 0 :(得分:4)

如果您希望匹配空格字符,则需要将其包含在正则表达式中。 \w仅匹配单词charactes,不包含空格。

Regex regex = new Regex(@"OU=[\w\s]+");

这匹配单词字符(\w)和空白字符(\s)。

(字符串前面的@只是为了方便:如果使用它,则不需要转义反斜杠。)

答案 1 :(得分:4)

在允许列表中添加空格(\ w不允许空格)或使用逗号可用作分隔符的知识。

Regex regex = new Regex("OU=(\\w|\\s)+");

OR

Regex regex = new Regex("OU=[^,]+");