0

这是我目前的情况;我是一个近乎完全的正则表达式文盲,我的任务是扩展我们网站的一部分,该网站向用户请求域名以获得客户帐户。现在它是一行,一个域名,下面的正则表达式效果很好。

(?i)^(?!.{257,})(?!.*-\\.)(?!.*?-\\.)(?:[a-zA-Z0-9-]{1,64}\\.)+(?:[a-zA-Z]{2,6})\\b

我需要做的是允许用户在框中输入多个域名。每行一个。基本上我需要做的就是包装这个正则表达式,以便逐行应用验证,而不是在整个集合上应用。

我知道这件事使用负面展望,尽管我不知道这些是什么。我发现的每个教程似乎都避开了我需要的想法和概念。我本周末可以学习的任何想法、链接或评论将不胜感激。

顺便说一句,我在 .Net MVC 3.0 中实现了这一点。

谢谢!

4

1 回答 1

1

许多 Regexp 框架提供了一组扩展选项来修改匹配的整体行为。

以下两个链接包含对 .NET 和 Javascript 的引用:

在这两种情况下,如果将整个多行字符串输入正则表达式,则m选项可能就是您要查找的选项。

此外,就负面预测而言,Python regexp 模块中的这个小片段给出了一个简洁的示例(来自Python Regex Module):

(?!...)

如果 ... 下一个不匹配,则匹配。这是一个否定的前瞻断言。例如,Isaac (?!Asimov) 将匹配 'Isaac ' 仅当它后面没有 'Asimov' 时。

于 2012-06-22T23:44:17.653 回答