有效的目录结构(Efficient Directory Structure)
大量文件的最佳目录结构是什么? 考虑到我有超过2000万的文件使用number_id作为文件名(例如13842985.xml)。
如果会与类似的东西
filename : 13842985.xml directory : 1/3/8/13842985.xml
我怎样才能正确地做到这一点,其中所有文件均匀分散在每个目录和子目录中。
What would be the best directory structure for a massive amount of file. Considering i have more than 20 million of files using number_id as file names (ex. 13842985.xml).
if would go with something like
filename : 13842985.xml directory : 1/3/8/13842985.xml
How can i do this properly wherein all files are scattered evenly on each directories and subdirectories.
原文:https://stackoverflow.com/questions/6295409
最满意答案
这里是regexp和replace函数的函数,在第一次将func的名称作为变量传递,在第二次 - 你的函数params
function addParams(funcStr, paramsArrayToAdd){ var isFirstCall = false; return funcStr.replace(/[^\)\(]+/g,function(str){ if(!isFirstCall){ isFirstCall = true; return str; }else{ return str.length > 0 ? str + "," + paramsArrayToAdd.join(",") : paramsArrayToAdd.join(","); } }); }
使用示例
var str = addParams("AddMoreRowsWithNo('SnapIII_btnEquipmentAddMore', 'SnapIII_TBLAdditionalEquipment', 'SnapIII_trAdditionalEquipment', 'SnapIII_tdEquipmentNo')",["'param1'","'param2'"]) console.log(str);//AddMoreRowsWithNo('SnapIII_btnEquipmentAddMore', 'SnapIII_TBLAdditionalEquipment', 'SnapIII_trAdditionalEquipment', 'SnapIII_tdEquipmentNo','param1','param2')
Here is function with regexp and replace function, in first time will pass name of func as variable, in second time - your func params
function addParams(funcStr, paramsArrayToAdd){ var isFirstCall = false; return funcStr.replace(/[^\)\(]+/g,function(str){ if(!isFirstCall){ isFirstCall = true; return str; }else{ return str.length > 0 ? str + "," + paramsArrayToAdd.join(",") : paramsArrayToAdd.join(","); } }); }
Example of use
var str = addParams("AddMoreRowsWithNo('SnapIII_btnEquipmentAddMore', 'SnapIII_TBLAdditionalEquipment', 'SnapIII_trAdditionalEquipment', 'SnapIII_tdEquipmentNo')",["'param1'","'param2'"]) console.log(str);//AddMoreRowsWithNo('SnapIII_btnEquipmentAddMore', 'SnapIII_TBLAdditionalEquipment', 'SnapIII_trAdditionalEquipment', 'SnapIII_tdEquipmentNo','param1','param2')
相关问答
更多-
这里是regexp和replace函数的函数,在第一次将func的名称作为变量传递,在第二次 - 你的函数params function addParams(funcStr, paramsArrayToAdd){ var isFirstCall = false; return funcStr.replace(/[^\)\(]+/g,function(str){ if(!isFirstCall){ isFirstCall = true; return ...
-
在括号内获取字符串(Get string inside brackets)[2022-03-28]
您可以在re.findall使用自己的模式来获取[...]内的所有内容: import re var = 'u16 arrayName_1[8][7]' index = re.findall(r'\[(.*?)\]', var) print(index) # => ['8', '7'] 请参阅Python演示 要仅匹配内部数字,请使用\[([0-9]+)]正则表达式。 此外,您不必转义字符类之外的]符号,您应该考虑使用原始字符串文字来定义正则表达式模式,以避免与未转义的反斜杠混淆。 You may use ... -
javascript将字符串转换为带括号的int数组[duplicate](javascript convert string into array of int with brackets [duplicate])[2023-03-22]
如果你已经有像这样的字符串"[1, 2,3, 4]" JSON.parse会这样做 var arr = JSON.parse( "[1, 2,3, 4]" ); if you already have the string like this "[1, 2,3, 4]" JSON.parse will do var arr = JSON.parse( "[1, 2,3, 4]" ); -
Javascript - 替换括号内的字符串,但括号应该保留(Javascript - replace string between brackets, but the brackets should stay)[2022-05-26]
你需要比以下更多的东西吗? var num=2 // parse this from drafts [2] num++; var newstr=str.replace(/\[(.+?)\]/g, "["+num+"]") 或者,每个输入的括号可以更改为<> {}? 你也可以给一个函数,而不是替换字符串。 var str = "Drafts [2]"; function replacer(match, p1, p2, p3, offset, string) { return p1 + (1+pa ... -
这个正则表达式适用于您概述的案例: /\|(?!(?:\w+\|?)+])/ 以下是它运行的示例: http : //jsfiddle.net/UFq3h/1/ (您需要打开控制台才能看到结果)。 粗俗的解释:任何| 字符未跟随(单词字符或|后跟] )。 如果你需要更准确的解释发表评论,我会尽量让它更清楚。 编辑:感谢Lolo的改进版本,它处理用例中的最后一个示例。 This regex should work for the cases you've outlined: /\|(?!(?:\w+\|?) ...
-
如何从JavaScript中的字符串中提取方括号中的文本?(How to extract text in square brackets from string in JavaScript?)[2022-08-13]
我不知道你在那个数组字符串中期待什么文本,但是对于你给出的例子。 var arrStr = "[a][b][c][d][e]"; var arr = arrStr.match(/[a-z]/g) --> [ 'a', 'b', 'c', 'd', 'e' ] with typeof 'array' then you can just use `.concat()` on the produced array to combine them into a string. 如果您期望方括号之间有多个字符,那 ... -
正则表达式匹配JavaScript的括号和括号(Regular Expression to match parentheses and brackets for JavaScript)[2022-04-27]
这应该工作: /\([^)]*\)|\[[^\]]*\]/g; 试试下面: var str = "The (quick) brown [fox]"; var re = /\([^)]*\)|\[[^\]]*\]/g; str.match(re).forEach(function(m) { document.body.insertAdjacentHTML('beforeend', m + '
'); }); Regex101 This should work: /\([^)]*\) ... -
删除括号内的单词(Remove words inside the brackets)[2023-06-17]
使用[^)] +表示打开后这里没有右括号: var str = "language:chinese (29)parody:hyouka (73)character:fuyumi irisu (12)houtarou oreki (12)group:shuudan bouryoku (41)artist:murasaki syu (49)misc:schoolgirl (11)nakadashi (11)acting like a pet (6)"; var tags = str.replace(/\s ... -
试试这样: var x = "Product[parameter][0][values][2][value]"; x = x.substr(0, x.lastIndexOf("[")); alert(x); JSFIDDLE DEMO Try like this: var x = "Product[parameter][0][values][2][value]"; x = x.substr(0, x.lastIndexOf("[")); alert(x); JSFIDDLE DEMO
-
您可以使用String.replace()函数。 如果找到捕获,则返回支撑的东西,否则返回% 。 var str = "replace {replace} test replacesreplace"; str = str.replace(/({[^}]*})|replaces?/g, function($0, $1) { return typeof $1 != 'undefined' ? $1 : "%"; }); document.write(str); You can use a fu ...