我有大量的文件来排序所有在一些可怕的约定中命名的文件.
这里有些例子:
(4)_mr__mcloughlin ____.txt
12__sir_john_farr ____.txt
(b)mr__chope ____.txt
dame_elaine_kellett-bowman ____.txt
dr__blackburn ______.txt
这些名称应该是不同的人(发言者).另一个IT部门的某个人使用一些脚本从大量的XML文件中生成了这些文件,但是如你所见,命名是不可思议的愚蠢.
我需要用每个人的多个文本文件对数万个这些文件进行排序; 每个都有一些愚蠢的东西使文件名不同,无论是更多的下划线或一些随机数.他们需要按说话者排序.
使用脚本执行大部分工作会更容易,然后我可以返回并合并应该使用相同名称或其他内容的文件夹.
我有很多方法可以考虑这样做.
我打算使用Perl,但如果它值得,我可以尝试一种新语言.我不知道如何将目录中的每个文件名一次一个地读入字符串以解析为实际名称.我不完全确定如何在perl中使用正则表达式进行解析,但这可能是可谷歌的.
对于排序,我只是要使用shell命令:
`cp filename.txt /example/destination/filename.txt`
Run Code Online (Sandbox Code Playgroud)
但只是因为这就是我所知道的所以它是最简单的.
我甚至没有关于我要做什么的伪代码的想法,所以如果有人知道最好的行动顺序,我的耳朵.我想我正在寻找很多帮助,我对任何建议持开放态度.许多人感谢任何可以提供帮助的人.
B.
我有一个文件名,例如:xxdatafile_20110120123030_12342.dat.我想"XXdatafile_"从文件名中提取.
如何在Unix上使用Ksh做到这一点?
我有一个看起来像这样的字符串.
string s = "1,6,4,3,5,7,4";
Run Code Online (Sandbox Code Playgroud)
我想将其转换为整数数组.
在C#中执行此操作的最佳和最快方式是什么?
我有一个网页的来源,我需要提取身体.所以之间的任何</head><body>和</body></html>.
我试过以下但没有成功:
var match = Regex.Match(output, @"(?<=\</head\>\<body\>)(.*?)(?=\</body\>\</html\>)");
Run Code Online (Sandbox Code Playgroud)
它找到一个字符串,但很久就将其删除</body></html>.我根据RegEx 备忘单逃脱了角色.
我错过了什么?
我有一个文本框,我想读取用户输入的数学函数(例如:Math.Sqrt(x)等).
我一直用于控制台测试功能的代码是
static double f(double x)
{
double f;
f = Math.Sqrt(x);
return f;
}
Run Code Online (Sandbox Code Playgroud)
我不确定如何修改它:我是否读取字符串中的文本框内容,并将该字符串作为第二个参数添加到f函数中(static double f(double x,string s)?我应该解析什么类型的解析适用于字符串?
我试图看看是否有一种不同的/更好的方法来解析我拥有的字符串.
字符串是"#def xyz [timer = 50,fill = 10]".从这个字符串我试图检索计时器和填充值.
我目前的代码是:
string def = "#def xyz[timer=50, fill=10]";
string _timer = def.Remove(def.IndexOf(","));
_timer = _timer.Remove(0, _timer.IndexOf("=", _timer.IndexOf("timer")) + 1);
string _fill = def.Remove(def.IndexOf("]"));
_fill = _fill.Remove(0, _fill.IndexOf("=", _fill.IndexOf("fill")) + 1);
int timer = Int32.Parse(_timer);
int fill = Int32.Parse(_fill);
Run Code Online (Sandbox Code Playgroud)
有什么建议?
提前致谢!
例如:
需要将上面的排序为,
我使用 bash 并且我有字符串(提交消息)
:sparkles: feat(xxx): this is a commit
Run Code Online (Sandbox Code Playgroud)
我想把它分成变量部分:
emoji=:sparkles:
type=feat
scope=xxx
message=this is a commit
Run Code Online (Sandbox Code Playgroud)
我尝试使用 grep,但正则表达式没有返回我需要的内容(例如“类型”),无论如何如何将其粘贴到变量中?
echo ":sparkles: feat(xxx): this is a commit" | grep "[((.*))]"
Run Code Online (Sandbox Code Playgroud) 如何从具有更多字符的字符串中提取可能具有指数的多个double类型?
例如提取物56.8671311035e-06从
"这是一个数字在56.8671311035e-06内的字符串,字符串在这里继续"
我想可以使用正则表达式完成,但我对它们的了解非常有限.
我想知道如何解析(或拆分)和列表元素?
我有一个列表(字符串)列表,如:
resultList = [['TWP-883 PASS'], ['TWP-1080 PASS'], ['TWP-1081 PASS']]
Run Code Online (Sandbox Code Playgroud)
哪里:
resultList[0] = ['TWP-883 PASS']
resultList[1] = ['TWP-1080 PASS']
Run Code Online (Sandbox Code Playgroud)
基本上,我需要一个变量用于列表的每个元素中的两个条目.例如:
issueId = 'TWP-883'
status = 'PASS'
Run Code Online (Sandbox Code Playgroud)
什么允许迭代这个列表并解析如上所述?
我目前正在制作一个从串口接收字符串的c#应用程序,我需要解析这些数据,以便我可以用它来做任务.
通过它发送的字符串SerialPort格式如下:
*NTF,CTRL,SQL,OPEN,+,-66*NTF,CTRL,DBUSY,ON,+,-63*NTF,CTRL,DBUSY,OFF*NTF,CTRL,SQL,CLOSE*
Run Code Online (Sandbox Code Playgroud)
现在我想知道如何将这个字符串分成*符号上的段,我自己做了几次尝试,但无法弄明白.
String[] tmp = data.ToString().Split('*');
foreach(String word in tmp)
{
if (word.Contains(",80") || word.Contains(",81"))
{
COM_PORT_INFO_BOX.Text += word + "\r\n";
}
}
Run Code Online (Sandbox Code Playgroud)
NTF,CTRL,SQL,OPEN,+,-66
NTF,CT RL,DBUSY
,ON,+,-6
3
NTF,CT
RL,DBUSY
,OFF NTF,CT
RL,SQL,C
LOSE
Run Code Online (Sandbox Code Playgroud)
var regex = new Regex('*'+".+"+'*');
var matches = regex.Matches(data);
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误.
NTF,CTRL,SQL,OPEN,+,-66
NTF,CTRL,DBUSY,ON,+,-63
NTF,CTRL,DBUSY,OFF
NTF,CTRL,SQL,CLOSE
Run Code Online (Sandbox Code Playgroud)
我通过这段代码解决了这个问题:
SerialPort sp = (SerialPort)sender;
data += sp.ReadExisting().ToString();
string[] tmp = data.Split(new char[] {'\u0002','\u0003'}, StringSplitOptions.RemoveEmptyEntries);
foreach (string line in tmp) …Run Code Online (Sandbox Code Playgroud)