开发者

string manipulation in regex

i have a problem in string manipulation 开发者_开发技巧

here is the code

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));

the result i am getting is "MyOU1" instead of getting "MyOU1 Control"

please help thanks


If you want the space character to be matched as well, you need to include it in your regex. \w only matches word charactes, which does not include spaces.

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

This matches word characters (\w) and whitespace characters (\s).

(The @ in front of the string is just for convenience: If you use it, you don't need to escape backslashes.)


Either add space to the allowed list (\w doesn't allow space) or use the knowledge that comma can be used as a separator.

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

OR

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜