正则表达式匹配可选项,除非可选项包含某个字符串?

时间:2014-08-13 00:16:54

标签: javascript regex

[问题]

我有一个URL方案,我正在尝试为其创建一个正则表达式。我有一个方案的一部分是可选的,但如果某个字符串(假设字符串是Apple)匹配字符串中的任何位置,它应该失败。

[实施例]

成功的字符串
http://example.com/en/Parent
http://example.com/en/Parent/
http://example.com/en/Parent/ArbitraryWord
http://example.com/en/Parent/ArbitraryWord/anythingelse

失败的字符串
http://example.com/en/Parent/Apple
http://example.com/en/Parent/Apple/anythingelse

[我试过的]

我从/\/Parent\/(?!Apple)([a-zA-Z0-9]+)/gi开始,但与http://example.com/en/Parent不匹配,因为正则表达式需要一个尾部斜杠和另一个字符串。然后,我尝试/\/Parent(\/)?(?!Apple)([a-zA-Z0-9]+)?/gi,它与/Parent/网址匹配,但在Apple出现时也不会失败。

[的jsfiddle]

http://jsfiddle.net/Luf9zsw4/1/

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

/\/Parent(?:\/((?!Apple).*))?$/img