找到几个相邻的相同数字
Find few adjacent identical numbers
你能帮帮我吗?
我需要一个正则表达式来拆分像
这样的字符串
"11231114"
到
['11', '2', '3', '111', '4']
在 Javascript 你可以做:
var m = "11231114".match(/(\d)*/g)
//=> ["11", "2", "3", "111", "4"]
您可以在您使用的任何 language/tool 中使用类似的方法。
方法是使用 (\d)
捕获数字,然后使用 *
.
匹配相同的所有反向引用
你可以这样做,
> str = "11231114"
=> "11231114"
> str1 = str.gsub(/(?<=(\d))(?!)/, "*")
=> "11*2*3*111*4*"
> str1.split('*')
=> ["11", "2", "3", "111", "4"]
您可以按如下方式实施 String#scan
:
"11231114".scan(/((\d)*)/).map(&:first)
#=> ["11", "2", "3", "111", "4"]
您可以将块传递给 String#scan
将匹配组推送到数组。
matches = []
"11231114".scan(/((\d)*)/) do |n,r| matches << n end
Ruby中有slice_when
2.2:
"11231114".chars.slice_when { |x, y| x != y }.map(&:join)
你能帮帮我吗? 我需要一个正则表达式来拆分像
这样的字符串"11231114"
到
['11', '2', '3', '111', '4']
在 Javascript 你可以做:
var m = "11231114".match(/(\d)*/g)
//=> ["11", "2", "3", "111", "4"]
您可以在您使用的任何 language/tool 中使用类似的方法。
方法是使用 (\d)
捕获数字,然后使用 *
.
你可以这样做,
> str = "11231114"
=> "11231114"
> str1 = str.gsub(/(?<=(\d))(?!)/, "*")
=> "11*2*3*111*4*"
> str1.split('*')
=> ["11", "2", "3", "111", "4"]
您可以按如下方式实施 String#scan
:
"11231114".scan(/((\d)*)/).map(&:first)
#=> ["11", "2", "3", "111", "4"]
您可以将块传递给 String#scan
将匹配组推送到数组。
matches = []
"11231114".scan(/((\d)*)/) do |n,r| matches << n end
Ruby中有slice_when
2.2:
"11231114".chars.slice_when { |x, y| x != y }.map(&:join)