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
Related
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 4 years ago.
Improve this question
I need to extract the . extension from the following paths:
(_OasvkDSOEee_ruCXphIMsQ) /com.c.rb.gold.gbl.fw.proxy.component_jar/src/main/java/com/roup/ebus/mobile/api/common/resource/APIProxyResource.java
(_7ZgAUO-qEeeFqO9kl3sUYw) /cbmo-thgcb-ext-gm.war/src/main/app/WEB-INF/classes/rules/THMBK/APIRequestResponseMapper.xml
(_TM6vEFKjEee-NMziq4x8wA) /com.citi.rb.gold.memfis.sb.war/src/main/webapp/citibank/eclipselite/bank/memfis/sb/maintenance/SBBondCalculatorPopup.jsp
Every filepath above starts with "n" number of white-spaces. I need only the . and the part that follows it, such as:
.java
.xml
.jsp
.anything
Please help on it.
You can use File.extname:
File.extname("/abcd/INF/classes/rules/THMBK/APIRequestResponseMapper.xml")
=> .xml
File.extname("fdsfdsdf /abcd/INF/classes/rules/THMBK/APIRequestResponseMapper.xml")
=> ".xml"
If you have the strings in an array like so:
strings = [
"(_OasvkDSOEee_ruCXphIMsQ) /com.c.rb.gold.gbl.fw.proxy.component_jar/src/main/java/com/roup/ebus/mobile/api/common/resource/APIProxyResource.java",
"(_7ZgAUO-qEeeFqO9kl3sUYw) /cbmo-thgcb-ext-gm.war/src/main/app/WEB-INF/classes/rules/THMBK/APIRequestResponseMapper.xml",
"(_TM6vEFKjEee-NMziq4x8wA) /com.citi.rb.gold.memfis.sb.war/src/main/webapp/citibank/eclipselite/bank/memfis/sb/maintenance/SBBondCalculatorPopup.jsp"
]
You can get the extensions like so:
strings.flat_map do |string|
# in single line, regex is /(\.[^\.]+)$/
# here is multiline form with explanation:
regex = %r{
( # start of match group
\. # period
[^\.]+ . # any number of chars other than period
) # end of match group
$ # end of string
}x
string.match(regex).captures
end
# => [".java", ".xml", ".jsp"]
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'"]
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".
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.
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.