【发布时间】:2017-08-01 10:21:39
【问题描述】:
假设存在匹配项,我无法使用正则表达式从字符串中拆分字符。
我想从字符串的第一部分中分离出一个“m”或一个“f”字符,假设下一个字符是一个或多个数字,后跟可选的空格字符,然后是我拥有的数组中的字符串.
我试过了:
2.4.0 :006 > MY_SEPARATOR_TOKENS = ["-", " to "]
=> ["-", " to "]
2.4.0 :008 > str = "M14-19"
=> "M14-19"
2.4.0 :011 > str.split(/^(m|f)\d+[[:space:]]*#{Regexp.union(MY_SEPARATOR_TOKENS)}/i)
=> ["", "M", "19"]
请注意我的数组开头的多余“”元素,还请注意最后一个表达式只是“19”,而我想要字符串中的所有其他内容(“14-19”)。
如何调整我的正则表达式,以便只有被拆分的表达式部分最终出现在数组中?
【问题讨论】:
-
我不知道您所说的“拆分”或“字符串的第一部分”是什么意思。如果原始字符串是
str,当str[0] =~ /[mf]/i满足其他两个条件时,您是否希望返回str[1..-1]?不匹配返回什么,str?