我需要从下面的模式中找到可选的后缀
Doe,John(JR)(IV) - 后缀1是JR,后缀2是IV
Doe,John(JR) - 后缀1是JR,siffix 2是空的
Doe,John - 后缀1和后缀2都是空的
我尝试了以下方法来查找后缀
MatchCollection matches = Regex.Matches("Doe, John (JR) (IV)", @"(.*?)\s*(?:\(.*?\))?\s*(?:\(.*?\))?$", RegexOptions.IgnoreCase);
var name = matches[0].Groups[1].Value;
var suff1 = matches[0].Groups[2].Value;
var suff2 = matches[0].Groups[3].Value;
但是suff1和suff2是空的。我在正则表达式中做错了什么,是否有更好的方法在括号内找到值而不是使用正则表达式
答案 0 :(得分:0)
这里没有足够的信息来确保在所有情况下这都适合您,但根据您提供的信息,这将有效。根据您未提供的信息,这可能不起作用。
(.+?)(?:\s*\((.+?)\))?(?:\s*\((.+?)\))?$