Finding alphanumeric using ruby [closed] - ruby

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
New to this forum.
Trying to run a test to find â or €
Using assertion
text.include? "â" , "€"
But getting errors.

Try:
text.include?("â") || text.include?("€")
OR:
/â|€/.match(text)

I would do it this way, since the include? method does not take an array:
['â', '€'].any? { |char| text.include?(char) }

I assume you're using minitest? You can use assert_match:
assert_match(/[â€]/, "text with â")
#=> true
assert_match(/[â€]/, "text with €")
#=> true
assert_match(/[â€]/, "text without")
#=> MiniTest::Assertion: Expected /[â€]/ to match "text without".

Related

Regex for price with and comma [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I have "8 560,90 cur.". How do I get the whole number 8560 as integer?
I can split it by comma, and then get [0] as whole number, asked if there's more way to do it.
Here's how I'd do it:
str = "8 560,90 cur."
str.gsub(/[^\d,]/, '').to_i
# => 8560
This removes every character that isn't a digit or a comma, yielding "8560,90", then calls to_i on it, which gives 8560. This will work for any string as long as you want every digit before the first comma to be part of the number, and none after.
"8 560,90 cur.".scan(/(\d*?).+?(\d+,\d\d)/).flatten.join.to_i
# => 8560
"sdwfdsf560,90 cur.".scan(/(\d*?).+?(\d+,\d\d)/).flatten.join.to_i
# => 560

Both single and double quotes in a ruby array [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
I have an array with string values:
a = ["Customer name", "Address", "Qualification"]
Requirement is to make these string values enclosed in both single and double quotes like this:
a = ["'Customer name'", "'Address'", "'Qualification'"]
How can I achieve this?
a = ["Customer name", "Address", "Qualification"]
a.map { |i| "'#{i}'" } # => ["'Customer name'", "'Address'", "'Qualification'"]
It makes sense to say that you want to enclose the content of each string with single quotes, but it does not make sense to say that you want to have double quotes around it, that is part of the literal. But anyway,
a.map{|s| "'#{s}'"}
# => ["'Customer name'", "'Address'", "'Qualification'"]

How to split this string by ruby? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
I want to split the string from the last underscore. The string as below:
"abc_123_identifier_12345"
the output:
["abc_123_identifier", "12345"]
please tell me if you have same good ideas. Thanks in advance!
Try this:
"abc_123_identifier_12345".split(/_(\d+)$/)
#=> ["abc_123_identifier", "12345"]
a = "abc_123_identifier_12345"
a.rpartition('_') - ['_']
output in console
[22] pry > a = "abc_123_identifier_12345"
=> "abc_123_identifier_12345"
[23] pry > a.rpartition('_') - ['_']
=> ["abc_123_identifier", "12345"]
Looks more like a pattern matching task than a splitting task for me:
[1] pry(main)> /^(.*)_(\d*)$/.match("abc_123_identifier_12345").captures
=> ["abc_123_identifier", "12345"]

Not able to find a particular regex in ruby [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
This is my regex /(.+)(\.|::)(\S+)\Z/. User enter function.[] Output $1 as function and $3 as []user enter function[] output nil The desired output is $1 as function and $3 as [].
Any guesses how can I alter the above regex to do this.
Call the match method to set $1 and $3:
/(\w+)(\.|::)?(\S+)\Z/.match('mongo.[]')
$1 # => mongo
$3 # => []
/(\w+)(\.|::)?(\S+)\Z/.match('mongo[]')
$1 # => mongo
$3 # => []
Are you looking for /(.+)(\.|::)*(\S+)\Z/?
The asterisk that I added means zero or more.
Or /(.+)(\.|::)?(\S+)\Z/,
The question mark means zero or one.

what is the appropriate regex to extract this kind of field-value string? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 8 years ago.
Improve this question
I have a string with this pattern: field1:"with space","tag1","tag2" field2:"f1",f2" FooBar1 FooBar2
How can i extract the fields and convert them to a hash with the property of hash[:field1] = ["with space", "tag1", "tag2"]
The answer and difficulty of this problem depends on what kind of characters the strings inside the string contain. For the current string, this works:
s = 'field1:"with space","tag1","tag2" field2:"f1","f2" FooBar1 FooBar2'
split_string = s.scan(/(\w+):(".*?")\s/)
split_string.map! do |key, string|
[key, string.delete('"').split(',')]
end
p Hash[split_string]
# => {"field1"=>["with space", "tag1", "tag2"], "field2"=>["f1", "f2"]}
The regexp /(\w+):(".*?")\s means capture a word followed by a :, then all data between quotes followed by a space.

Resources