简短的问题,但无法使其发挥作用。我有一个字符串:
COMPANY NAME - username (Name Surname).
在这样的示例中,username
和-
之间的哪种正则表达式会给我(
(不含空格)?
它是ASP.NET C#,如果它有任何区别。提前谢谢!
编辑:
公司名称是一个包含可能空格的字符串。用户名没有空格。字符-
和(
仅出现在这两个地方。我认为这是100%明显,因为我给出了这样的例子。
答案 0 :(得分:3)
string resultString = null;
try {
resultString = Regex.Match(subjectString, @"-\s+(\S*)\s*\(").Groups[1].Value;
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
输出:username
答案 1 :(得分:3)
var match = Regex.Match(
"COMPANY - ltd (NAME) - username (Name Surname)",
@"^.* - (.*?) \(.*\)$"
);
var username = match.Groups[1].Value;
如果您的行以.
结尾,那么正则表达式为@"^.* - (.*?) \(.*\)\.$"
通过使用.*?
(懒惰量词),这个正则表达式对我用作测试的奇怪“事物”非常有抵抗力。
Link进行测试。遍历每一行以查看捕获组。
答案 2 :(得分:0)
使用grep测试正则表达式很容易:
kent$ echo "COMPANY NAME - username (Name Surname)."|grep -Po '(?<=- ).*(?= \()'
username
答案 3 :(得分:0)
您可以观看下面的youtube正则表达式视频,我相信您可以自己回答上述问题。