2016-02-12 229 views
1

我有這個正在使用的正則表達式,但現在我需要添加一些東西給它。正則表達式 - 必須以某些字符開頭,但不能包含此字符串

^[|a-z-&+\/](?!\|) 

我試了幾件事,但我不能拿出解決方案。

我希望它添加到它,不匹配在任何位置包含「##」的任何內容。

這些比賽:

|test 
test#test 
apple 

這些不匹配:

||test 
test##test 
apple## 

回答

2

一個選項是在開始時^錨後添加一個負前瞻:(?!.*##)

Example Here

^(?!.*##)[|a-z-&+\/](?!\|) 

由於Casimir et Hippolyte points out,因爲#不能是第一個字符,你可以或者在現有的先行添加此支票an alternation

Example Here

^[|a-z-&+\/](?!\||.*##) 

說明:

  • ^[|a-z-&+\/] - 匹配(如果你使用多行標誌或行)在字符串的開始時設置的字符一個字符。
  • (?! - 開始負前瞻的
  • \| - 匹配|字符字面
  • | - 交替;或...
  • .*## - 檢查的##字符
  • ) - 關閉負先行
+1

由於''#不能作爲第一個字符,我會把'* ##'作爲。在已有的前瞻中進行交替。 –

+0

這工作表示感謝。我試過這個^ [| a-z - &+ \ /](?!\ ||)(?!。* ##),這不起作用,促使我問。非常感謝。 – Henry

相關問題