这是我目前的情况;我是一个接近完全正则表达的文盲,并且我们的任务是扩展我们的网站片段,该网站向用户请求客户帐户的域名。现在它是一行,一个域名,下面的正则表达式很好。
(?i)^(?!.{257,})(?!.*-\\.)(?!.*?-\\.)(?:[a-zA-Z0-9-]{1,64}\\.)+(?:[a-zA-Z]{2,6})\\b
我需要做的是允许用户在框中输入多个域名。每行一个。基本上我需要做的就是包装这个正则表达式,以便逐行应用验证,而不是整个集合。
我知道这件事使用了负面的预测,虽然那些我没有真正的想法。我发现的每一个教程似乎都将这些想法放在了我需要的概念之上。我本周末可以学习的任何想法,链接或评论都将非常受欢迎。
顺便说一下,我在.Net MVC 3.0中实现了这个。
谢谢!
答案 0 :(得分:1)
许多Regexp框架提供了一组扩展选项,可以修改匹配的整体行为。
以下两个链接包含.NET和Javascript的引用:
在这两种情况下,如果将整个多行字符串输入到正则表达式中,则 m 选项可能就是您要查找的内容。
另外,就负面预测而言,Python regexp模块的这个小片段给出了一个简洁的例子(来自Python Regex Module):
(?!...)
匹配如果......下一个不匹配。这是一个负面的先行断言。例如,Isaac(?!Asimov)只有在没有'Asimov'的情况下才会匹配'Isaac'。