(很抱歉的坏称号,任何建议赞赏);-)正则表达式匹配一些给定格式文件名的条件?
好,考虑这些字符串:
first = "SC/SCO_160ZA206_T_mlaz_kdiz_nziizjeij.ext"
second = "MLA/SA2_jkj15PO_B_lkazkl lakzlk-akzl.oxt"
third = "A12A/AZD_KZALKZL_F_LKAZ_AZ__azaz___.ixt"
我正在寻找一个正则表达式让我得到这样的阵列(在红宝石):
first_array = ['SCO', '160ZA206', 'T', 'mlaz_kdiz_nziizjeij']
second_array = ['SA2', 'jkj15PO', 'B', 'lkazkl lakzlk-akzl']
third_array = ['AZD', 'KZALKZL', 'F', 'LKAZ_AZ__azaz___']
的第一场比赛必须在/
之后和之前的第一_
第二匹配必须是第一个和第二_
第三匹配必须是第二和第三_
最后匹配必须是第三_
和最后.
之间的任何东西之间的任何东西之间的任何
我不能得到它:[^\/].?([A-Z]*)_(.*)_(.*)[\.$]
:-(
ruby是否有一个范围有限'分裂'功能?如果是的话,从第一个/最后一个字符串开始,然后用'_'分割,最多分为三组:“数组”元素(如果这是Ruby中调用的)将包含你想要的。 – fge 2012-01-05 20:28:47
+1很高兴看到一个正则表达式的问题,其中OP在承包出栈之前付出了一些努力 – ean5533 2012-01-05 20:31:25
@fge:不幸的是我不能使用'_'来分割我的字符串,最后一个匹配可能包含'_' 。 – 2012-01-05 20:39:18