2016-10-03 30 views
-2

我需要符合以下模式正則表達式需要的正則表達式的特定模式

字符串必須匹配 「/阿肖克/ .....」 但不應配合 「/阿肖克/ ... :...」和 '/阿肖克/文件:ABC ......'

例如:/ashok/xyz應該與 但/ashok/file:abc.jpg不應該。

結腸癌不應該出現後,第二斜線

+0

冒號不會立即顯示在第二次斜線之後。第二次正向斜線後,至少有一個字母數字字符。但之後不應出現冒號。例如/ ashok/xyz應該通過but/ashok/xyz:和/ ashok/xyz:abc不應該。冒號後還會有字符。這不應該通過 – Ashok

回答

1

我不能肯定我明白你問什麼。但是你可以嘗試負前瞻:

/\/ashok\/(?!.*:).+/g 

如果第二斜槓後沒有冒號出現此將只匹配/ashok/xyz。這個正則表達式要求在第二個正斜槓後至少有一個非冒號字符。如果這是沒有必要的,你可以使用:

/\/ashok\/(?!.*:).*/g 

您可以閱讀page更多地瞭解負向前看符號(和lookarounds一般)。如果你需要它

/^\/ashok\/[a-z0-9]+$/i 

或者:

編輯

另外,如果你的目標字符串應該包含您的結構,沒有別的只有一個實例,你可以利用這一點避免lookarounds匹配多個正斜槓分隔的字母數字字符組:

/^\/ashok(?:\/[a-z0-9]+)+$/i 
+0

冒號在第二次斜線後不會立即出現。第二次正向斜線後,至少有一個字母數字字符。但之後不應出現冒號。例如 /ashok/xyz應該通過 但是/ ashok/xyz:和/ ashok/xyz:abc不應該。冒號後還會有字符。這不應該通過 – Ashok

+0

那麼,如果是這樣的話,你可以使用'/ \/ashok \ /(?!。+:)。+/g'。我還在原始答案中添加了兩個正則表達式字符串,它們沒有使用lookaround。如果我理解你的要求,那些字符串中的第一個('/^\/ashok \/[a-z0-9] + $/i')正是你想要的。 – ideoderek