0

最初我有以下问题:

在文本框中添加多个 GroupName。

  1. GroupName 可以用","/ "or"/分隔"OR"
  2. 输入不应以","/ "or"/开头或结尾"OR"

例如:

组名、组名或组名或组名
组名、组名、组名、组名或组名

为此,我找到了答案

/^[a-zA-Z0-9\s]+(?:\s*(?:or|OR|,)\s*[a-zA-Z0-9\s]+)*$/

如何修改此正则表达式以支持or OR关键字作为前缀。也不能有两个连续的前缀,例如:

或 或 组名

(上面的例子不是有效的输入。)

谁能帮我解决这个问题?提前致谢。

4

1 回答 1

1

为什么不使用Regex.Split然后对其进行简化,以便您的模式只是标记?

所以你会说类似

string[] substrings = Regex.Split(input, "[\w]?(OR|,)[\w]?", RegexOptions.IgnoreCase);

然后只需丢弃空子字符串,而不用担心防止空项目。顺便说一句,这种方法会将分隔符拉到结果数组中,因为它们是一个捕获组,但链接的文档显示了如何避免这种情况。

此外,因为它忽略了空格,它可能会拉出像“Oregon”这样的结果作为“OR”和“Egon”,所以你可能想要强制“Or”运算符的空格匹配,尽管我会避免使用“,”作为人可以很好地使用它而没有空格。

于 2012-05-09T10:52:15.383 回答