我在字符串操作方面遇到问题
这是代码
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”
请帮助谢谢
答案 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=[^,]+");