抓住''使用正则表达式
本文关键字:正则表达式 抓住 | 更新日期: 2023-09-27 18:08:42
我有一个问题,我认为自己适合使用正则表达式,但是我不确定所有的语法是如何为我的特殊情况工作的。我有一个字符串,它总是以Company'user
的形式存在我只想抓取'
后面的字符串但是我不想包含'
我的尝试是:
var user = Regex.Match(userName,@"'*").ToString();
但是这只产生空字符串。如何做到这一点?
如果您使用Substring方法,您可以轻松地完成此操作(并且以更可读的方式)。
根据注释的建议,以下内容可以满足您的目的:
userName.Substring(userName.IndexOf('''')+1)
以下是来自MSDN的子字符串的更多信息:http://msdn.microsoft.com/en-us/library/aka44szs(v=vs.110).aspx
提供第三种方法(为简洁起见省略了错误处理):
var user = userName.Split('''')[1];
用正则表达式求解:
var user = Regex.Match(userName, @"(?<='').*").ToString();
(?<='')
是一个查找,它匹配字符串的'
部分,但在最终匹配中不捕获它。
然而,我同意@MatthewWatson使用Split的答案是理想的,如果你不需要regex解决方案。
var m = Regex.Match(@"Company'User", @"[^'']+''(.+)");
if (m.Groups.Count > 1)
{
var user = m.Groups[1].Value;
}
我将这样解析它:
var text = "Company''Luke Skywalker";
var regex = new Regex(
"^Company''''(?<user>.*?)$",
RegexOptions.IgnoreCase | RegexOptions.Singleline
);
var matches = regex.Match(text);
if (matches.Success) {
var user = matches.Groups["user"].Value;
// "Luke Skywalker"
}