![]() |
How to check whether a string contains a substring in Ruby - Printable Version +- 0Day Forums (https://0day.red) +-- Forum: Coding (https://0day.red/Forum-Coding) +--- Forum: Ruby (https://0day.red/Forum-Ruby) +--- Thread: How to check whether a string contains a substring in Ruby (/Thread-How-to-check-whether-a-string-contains-a-substring-in-Ruby) Pages:
1
2
|
How to check whether a string contains a substring in Ruby - pigeon914860 - 07-18-2023 I have a string variable with content: varMessage = "hi/thsid/sdfhsjdf/dfjsd/sdjfsdn\n" "/my/name/is/balaji.so\n" "call::myFunction(int const&)\n" "void::secondFunction(char const&)\n" . . . "this/is/last/line/liobrary.so" In the string I have to find a sub-string: "hi/thsid/sdfhsjdf/dfjsd/sdjfsdn\n" "/my/name/is/balaji.so\n" "call::myFunction(int const&)\n" How can I find it? I need to determine whether the sub-string is present or not. RE: How to check whether a string contains a substring in Ruby - mccarron989 - 07-18-2023 user_input = gets.chomp user_input.downcase! if user_input.include?('substring') # Do something end This will help you check if the string contains substring or not puts "Enter a string" user_input = gets.chomp # Ex: Tommy user_input.downcase! # tommy if user_input.include?('s') puts "Found" else puts "Not found" end RE: How to check whether a string contains a substring in Ruby - camilaqdt - 07-18-2023 You can use the [String Element Reference][1] method which is `[]` Inside the `[]` can either be a literal substring, an index, or a regex: > s='abcdefg' => "abcdefg" > s['a'] => "a" > s['z'] => nil Since `nil` is functionally the same as `false` and any substring returned from `[]` is `true` you can use the logic as if you use the method `.include?`: 0> if s[sub_s] 1> puts "\"#{s}\" has \"#{sub_s}\"" 1> else 1* puts "\"#{s}\" does not have \"#{sub_s}\"" 1> end "abcdefg" has "abc" 0> if s[sub_s] 1> puts "\"#{s}\" has \"#{sub_s}\"" 1> else 1* puts "\"#{s}\" does not have \"#{sub_s}\"" 1> end "abcdefg" does not have "xyz" Just make sure you don't confuse an index with a sub string: > '123456790'[8] # integer is eighth element, or '0' => "0" # would test as 'true' in Ruby > '123456790'['8'] => nil # correct You can also use a regex: > s[/A/i] => "a" > s[/A/] => nil [1]: [To see links please register here] RE: How to check whether a string contains a substring in Ruby - Sirpruebcpaz - 07-18-2023 Ternary way my_string.include?('ahr') ? (puts 'String includes ahr') : (puts 'String does not include ahr') OR puts (my_string.include?('ahr') ? 'String includes ahr' : 'String not includes ahr') RE: How to check whether a string contains a substring in Ruby - mariogsu - 07-18-2023 > How to check whether a string contains a substring in Ruby? When you say 'check', I assume you want a boolean returned in which case you may use [`String#match?`][1]. `match?` accepts strings or regexes as its first parameter, if it's the former then it's automatically converted to a regex. So your use case would be: str = 'string' str.match? 'strings' #=> false str.match? 'string' #=> true str.match? 'strin' #=> true str.match? 'trin' #=> true str.match? 'tri' #=> true `String#match?` has the added benefit of an optional second argument which specifies an index from which to search the string. By default this is set to `0`. str.match? 'tri',0 #=> true str.match? 'tri',1 #=> true str.match? 'tri',2 #=> false [1]: [To see links please register here] RE: How to check whether a string contains a substring in Ruby - resinaceous427704 - 07-18-2023 You can use the [`include?`][1] method: my_string = "abcdefg" if my_string.include? "cde" puts "String includes 'cde'" end [1]: [To see links please register here] RE: How to check whether a string contains a substring in Ruby - slotter995 - 07-18-2023 Expanding on Clint Pachl's answer: Regex matching in Ruby returns `nil` when the expression doesn't match. When it does, it returns the index of the character where the match happens. For example: "foobar" =~ /bar/ # returns 3 "foobar" =~ /foo/ # returns 0 "foobar" =~ /zzz/ # returns nil It's important to note that in Ruby only `nil` and the boolean expression `false` evaluate to false. Everything else, including an empty Array, empty Hash, or the Integer 0, evaluates to true. That's why the `/foo/` example above works, and why. if "string" =~ /regex/ works as expected, only entering the 'true' part of the `if` block if a match occurred. RE: How to check whether a string contains a substring in Ruby - lenyw - 07-18-2023 A more succinct idiom than the accepted answer above that's available in Rails (from 3.1.0 and above) is `.in?`: my_string = "abcdefg" if "cde".in? my_string puts "'cde' is in the String." puts "i.e. String includes 'cde'" end I also think it's more readable. See the [`in?`][1] documentation for more information. Note again that it's only available in *Rails*, and not pure Ruby. [1]: [To see links please register here] RE: How to check whether a string contains a substring in Ruby - blackness503 - 07-18-2023 You can also do this... my_string = "Hello world" if my_string["Hello"] puts 'It has "Hello"' else puts 'No "Hello" found' end # => 'It has "Hello"' This example uses Ruby's String [`#[]`]( [To see links please register here] ) method.RE: How to check whether a string contains a substring in Ruby - hedonist299605 - 07-18-2023 In case you can not use one of the libs mentioned above, one could achieve the same with simple text search (this is ignoring cases because of `downcase`): ADD_BUTTON_TEXTS = ["add to cart", "add to basket"].freeze target_text = "AdD tO cArT" ADD_BUTTON_TEXTS.each do |text| puts "Text was found" if target_text.downcase.include?(text) end |