2017-05-27 314 views
-1

我需要編寫一個包含以下子的一個或多個(包括大括號)所有字符串匹配的正則表達式信:正則表達式匹配括號內

{NN} 
{NNN} 
{NNNN} 
{NNNNN} 
{NNNNNN} 

我完全新的正則表達式。任何人都可以幫忙嗎?

+2

的可能的複製[學習正則表達式(https://stackoverflow.com/questions/4736/learning-regular-expressions) – jonrsharpe

回答

3
r =/
    \{  # match left brace 
    N{2,6} # match between 2 and 6 Ns 
    \}  # match right brace 
    /x  # free-spacing regex definition mode 

arr = %w|{N} {NN} {NNN} {NNNN} {NNNNN} {NNNNNN} {NNNNNNN} {NNMN}| 
    #=> ["{N}", "{NN}", "{NNN}", "{NNNN}", "cat{NNNNN}dog", "{NNNNNN}", 
    # "{NNNNNNN}", "{NNMN}"] 

arr.each { |s| puts "'#{s}'.match(r) = #{s.match?(r)}" } 
'{N}'.match(r) = false 
'{NN}'.match(r) = true 
'{NNN}'.match(r) = true 
'{NNNN}'.match(r) = true 
'cat{NNNNN}dog'.match(r) = true 
'{NNNNNN}'.match(r) = true 
'{NNNNNNN}'.match(r) = false 
'{NNMN}'.match(r) = false 
+0

正則表達式像一個魅力,非常感謝。 – Tintin81

1

你沒有指定你正在使用的語言/界面......一般來說:\{.*?\}。如果您只想匹配您呈現的字符串,請將.*?替換爲N{2,6}?

紅寶石例如:

if (content =~ /\{N{2,6}\}/) 
    puts "Content match!" 
end 
+0

我使用Ruby on Rails 。 – Tintin81

相關問題