2017-03-17 53 views
0

我有模式正則表達式模式不起作用像預期

/[^!]!(\z|[^!])/ 

,我有字符串:「我在這裏的字符串」

我需要檢查是否有串1個歎號(但不!!還是!!!)

+0

'\ z'代表什麼? – guest271314

+0

你可以像這樣使用'var regex = /!{2,} /'這樣的正則表達式來檢查是否有更多的連續的'!',並且使用NOT這樣的if來檢驗測試if(!regex.test(str)) '! –

回答

0

我成立了我需要的東西。因爲我需要檢查不僅結束而且還有字符串的中間部分

「My!string」和「My string!」

/([^!]![^!])|([^!]!$)/ 
+0

你想做什麼?你的正則表達式與'[^!]!(?!!)相同'你真的需要捕獲之前/之後嗎? – sln

+0

我需要確保只有一個「!」不是「!!」要麼 」!!!」 – Fatas

+0

如果'!!'匹配,則知道該字符串中至少有2個或更多個相鄰。你甚至不需要一個正則表達式。 – sln

1

這裏是一個example如果我正確

\A([^!]*)[!]{1}\Z 
0

這個怎麼理解你的問題?它應該工作

/\w+!{1}$/i 
0

您可以使用RegExp/!(?=!)/匹配其次是!!操作!RegExp.prototype.test()

var str = "My string here!"; 
 
var re = /!(?=!)/; 
 
console.log(!re.test(str)); 
 

 
var str = "My string here!!"; 
 
console.log(!re.test(str));

0

這個怎麼樣

/[^!]+!$/ 

您patterm:

/[^!]!(\z|[^!])/ 

意味着 「第一個字符不是,第二個字符是, 第三個字符,應該是最後一個字符或沒有任何角色!」!