2010-01-25 11 views

उत्तर

34

यदि नियमित अभिव्यक्ति अर्थ में आपका "सफेद स्थान" का अर्थ है, जो स्पेस कैरेक्टर, टैब, न्यूलाइन, कैरिज रिटर्न या (मुझे लगता है) फॉर्म-फीड में से कोई है, तो प्रदान किए गए किसी भी उत्तर का काम होगा:

s.match(/\s/) 
s.index(/\s/) 
s =~ /\s/ 

या यहाँ तक कि (जैसा कि पहले उल्लेख नहीं)

s[/\s/] 

आप केवल एक अंतरिक्ष चरित्र के लिए जाँच में रुचि रखते हैं, तो

s.match(" ") 
s.index(" ") 
s =~// 
s[" "] 
की अपनी पसंद की कोशिश

आईआरबी (रूबी 1.8.6) से:

s = "a b" 
puts s.match(/\s/) ? "yes" : "no" #-> yes 
puts s.index(/\s/) ? "yes" : "no" #-> yes 
puts s =~ /\s/ ? "yes" : "no" #-> yes 
puts s[/\s/] ? "yes" : "no" #-> yes 

s = "abc" 
puts s.match(/\s/) ? "yes" : "no" #-> no 
puts s.index(/\s/) ? "yes" : "no" #-> no 
puts s =~ /\s/ ? "yes" : "no" #-> no 
puts s[/\s/] ? "yes" : "no" #-> no 
+1

इसे अद्यतित करना, [स्ट्रिंग # मैच?] (Http://ruby-doc.org/core-2.4.1/String.html#method-i-match-3F) रूबी v2 में अपनी शुरुआत की .4, तो अब कोई भी 's.match लिख सकता है? (/ \ S /)'। –

2

आप सूचकांक का उपयोग कर सकते

"mystring".index(/\s/) 
+0

कोई टैब व्हाइटस्पेस नहीं है? – Eli

4

यह आमतौर पर इस तरह से किया जाता है:

str =~ /\s/ 

आप पढ़ सकते हैं के बारे में नियमित अभिव्यक्ति here

0

मैं वास्तव में इस के लिए गिनती का उपयोग कर मजा आता है।

"hello 1".count("") #=> 0 
"hello 1".count(" ") #=> 1 
" hello 1".count(" ") #=> 2 


"hello 1".count(" ") > 0 #=> true 
संबंधित मुद्दे