使用正则将字符串转为不同长度数组,能否生成指定格式数组?
当然可以实现!
不过得先明确你的原始输入字符串是什么?毕竟正则表达式是基于输入文本做匹配提取的,我先针对几种最常见的场景给你解决方案:
场景1:输入是带分隔符的字符串
如果你的原始字符串是类似 "1,12,2,13" 或者 "1|12|2|13" 这种用分隔符隔开目标元素的格式,根本不用复杂正则,直接用字符串分割方法就行:
比如在JavaScript里:
const inputStr = "1,12,2,13"; const targetArray = inputStr.split(','); // 结果就是 ['1', '12', '2', '13']
Python里也类似:
input_str = "1,12,2,13" target_array = input_str.split(',')
场景2:输入是混杂其他字符的文本
如果你的原始字符串是类似 "1abc12def2ghi13" 这种目标数字串混杂在其他字符里的情况,用匹配数字串的正则就能直接提取:
JavaScript示例:
const inputStr = "1abc12def2ghi13"; const regex = /\d+/g; const targetArray = inputStr.match(regex); // 结果正好是 ['1', '12', '2', '13']
Python示例:
import re input_str = "1abc12def2ghi13" target_array = re.findall(r'\d+', input_str)
场景3:输入是连续字符,需要精准匹配特定子串
如果你的原始字符串是类似 "112213" 这种连续字符,而你需要精准提取1、12、2、13这几个特定子串,可以直接把这些目标子串写进正则,注意调整顺序来控制匹配优先级(先匹配长串避免被短串拆分):
const inputStr = "112213"; const regex = /13|12|1|2/g; const targetArray = inputStr.match(regex); // 结果会是 ['1', '12', '2', '13']
总之,只要你的输入字符串里包含这些目标元素的匹配源,用正则或者字符串分割方法完全可以得到你想要的数组。
内容的提问来源于stack exchange,提问作者shijin
相关产品推荐
相关产品推荐

