也许有些人知道jdownloader2。它是一个下载管理器。regex也用于下载管理器。所以我想告诉你我基本上尝试做什么:我有许多链接的多个txt文件.所有的文本文件都有文件名,当然.我想拖放所有的文本文件到jdownloader2,所以它解密的txt文件,并将每个文本文件添加到一个包.包名应是txt文件的名称.我发现这样做是为了:
[ {
"enabled" : true,
"maxDecryptDepth" : 2,
"name" : null,
"pattern" : "file:/.*?\\.txt$",
"rule" : "DEEPDECRYPT",
"packageNamePattern" : null,
"formPattern" : null,
"deepPattern" : null,
"rewriteReplaceWith" : null
} ]
这使得jdownloader从一个txt文件抓取链接.但问题是:它给链接中的每一个文件一个自己的名字,因为packagenamepattern没有定义.所以它使用链接中的原始文件名来制作包.所以如果我有一个txt文件有100个链接,它将使100包不同的名称。但我希望它读取100在txt文件中的链接,并把它们都在一个包。所以..我需要如何改变“packagenamepattern”让jdownloader2把一个文本文件中的100个链接放到一个包中,包名应该是textfiles的名字。我想这和正则表达式有关(我希望我的想法没有错)。
先谢谢你。
1条答案
按热度按时间jaql4c8m1#
假设它可以找到带有模式的文本文件,你可以将模式添加为包名的字符串,而不是null。我不太明白每个变量的确切含义:“name”:null,“pattern”:“file:/.*?.txt$",“rule”:“DEEPDECRYPT”,
String regex_package_name = "\\.*\.txt" /*is where you define your regexcode to locate filename starting with last "\(for windows, or "/" for Linux) until end of the filename (".txt").*/
我自己测试了它,它工作正常(在regex_tester上)
你遇到的问题是,对于每个找到的匹配器,索引将递增,因此将为每个链接添加一个新文件。你必须引入一个while循环,当到达最后一个字符时,它首先遍历所有文件并带有中断条件。如果你想定义一个包名(“packageNamePattern”,“formPattern”,“deepPattern”),其他值也不应该为空。
如果这不起作用,你必须实现一个方法,从一个文件中读取所有链接,并将它们存储在另一个文件(.txt或.java)中,并以文件名命名。
祝你今天愉快- )