最初我有以下问题:
在文本框中添加多个GroupName。
","
/ "or"
/ "OR"
分隔。","
/ "or"
/ "OR"
开头或结尾。例如:
GroupName, GroupName or GroupName OR GroupName GroupName, GroupName, GroupName, GroupName or GroupName
为此,我找到了答案
/^[a-zA-Z0-9\s]+(?:\s*(?:or|OR|,)\s*[a-zA-Z0-9\s]+)*$/
如何修改此reqular表达式以支持or
OR
个关键字作为前缀。也不能有两个连续的前缀,例如:
or or GroupName
(以上示例无效输入。)
任何人都可以帮助我吗?提前谢谢。
答案 0 :(得分:1)
为什么不使用Regex.Split然后简化它,以便你的模式只是令牌?
所以你会说像
string[] substrings = Regex.Split(input, "[\w]?(OR|,)[\w]?", RegexOptions.IgnoreCase);
然后只丢弃空子串而不是担心防止空项目。顺便提一下,这种方法会将分隔符拉出到结果数组中,因为它们是一个捕获组,但链接的文档显示了如何避免这种情况。
另外,因为它忽略了空格,它可能会将“Oregon”之类的结果拉出“OR”和“Egon”,所以你可能想要强制“Or”运算符的空格匹配,尽管我会避免使用“,” “因为人们可能会毫无空间地使用它。