这更像是一个满足我好奇心的问题,而不是真正需要帮助的问题,但我同样会感谢你的帮助,因为它让我发疯。
我正在尝试使用 Javascript 正则表达式否定一个确切的字符串,这个想法是排除包含字符串“www”的 URL。例如这个列表:
http://www.example.org/
http://status.example.org/index.php?datacenter=1
https://status.example.org/index.php?datacenter=2
https://www.example.org/Insights
http://www.example.org/Careers/Job_Opportunities
http://www.example.org/Insights/Press-Releases
为此,我可以成功使用以下正则表达式:
/^http(|s):..[^w]/g
这可以正常工作,但是虽然我可以做一个积极的比赛,但我不能做类似的事情:
/[^www]/g or /[^http]/g
排除包含确切字符串 www 或 http 的行。我曾尝试过像这样臭名昭著的“消极前瞻”:
/*(?: (?!www).*)/g
但这也不起作用,或者我无法在线测试它,它在 Notepad++ 中也不起作用。
如果我使用 Perl、Grep、Awk 或 Textwrangler,我会简单地这样做:
!www OR !http
这本来可以完成这项工作。
所以,我的问题显然是:在 Javascript 中做这样的事情的正确方法是什么?这是否取决于正则表达式解析器(我似乎理解?)。
感谢您的任何回答;)