我有几个字符串,其中包含一个或多个数字,也可能包含数字后面的一个或多个字母(大写字母不重要)。字符串遵循以下正则表达式模式:[0-9]+[a-zA-z]*可能看起来像:"15791""14810A""10480ABCD""5ABCDEFGH"如果上面的一个字符串包含非数字字符,如何将数字(第一部分)拆分为整数,将字母(第二部分)拆分为字符串?我知道我可以像这样分开一根绳子:array = "1,2,3,4".split(',')但这没用,因为我没有分隔符。 最佳答案 在string.split中使用基于断言的正向lookbehind正则表达式。> "10480ABCD".split(/(?<=\d)(?=[A-Za-z])/)=> ["10480", "ABCD"](?<=\d)正数查找,它断言匹配必须以数字字符开头。(?=[A-Za-z])它断言匹配后必须跟一个字母表。所以上面的正则表达式将匹配数字和字母表之间的边界。根据匹配的边界分割输入将得到所需的输出。或使用> "10480ABCD".scan(/\d+|[A-Za-z]+/)=> ["10480", "ABCD"]
08-17 18:42
查看更多