2017-06-13 72 views
0

我正在使用名为TextCrawler Pro的程序,它允许我以宏的形式运行。找到指定文本后删除所有文本

我想清理天气页面每天从这个去:

Billings, MT;93;62;80;53;Not as warm;NNE;10;44%;20%;8 

Birmingham, AL;80;70;81;69;Thunderstorms;SSW;6;81%;90%;4 

Bismarck, ND;92;57;92;63;Mostly sunny;SE;12;46%;36%;8 

Boise, ID;85;51;77;49;Mostly sunny, nice;N;8;36%;0%;8 

这样:

Billings, MT;93;62;80;53; 

Birmingham, AL;80;70;81;69; 

Bismarck, ND;92;57;92;63; 

Boise, ID;85;51;77;49; 

我可以找到使用\;\d+\;\d+\;\d+\;\d+\;但我不能删除到行尾。

我尝试添加\r\n上述这样的结尾:\;\d+\;\d+\;\d+\;\d+\;\r\n

但代替实际的正则表达式的代码我所有的城市信息。

任何想法?我觉得我错过了很简单的事情。

+0

'cut -d \; -f1-5 < input.txt > output.txt'应该做这个工作...没有理由使正则表达式复杂化... – twalberg

+0

谢谢,这是在Windows服务器上,但不知道如何运行? – schnarkle

+0

你在做什么语言? –

回答

0
​​

第一组是你所追求的,忽略第二组。 See it here

+0

真棒,所以我怎么能从文本中删除组2? – schnarkle

0

将会有许多不同的模式,将成功地为您删除不需要的子串。这里有一些我已经熟了。 (Demo

67在我的名单步骤^([^;]+;[^;]+;[^;]+;[^;]+;[^;]+;).*$ #most高效模式

91步^((?:[^;]+;){5}).*$

127步(.+?;.+?;.+?;.+?;.+?;).*

157步((?:.+?;){5}).*

163步(.+?;)[^\d].*

185步(.+\d{2};)[A-Z].*

280步(.*\,\s[A-Z]+;\d{2};\d{2};\d{2};\d{2};)(.+)

您删除不需要的部分的方式,是只希望部分取代了全系列。

引用这些文档页面:

https://www.digitalvolcano.co.uk/textcrawlermanual/regular_expression_reference_guide.htm

https://www.digitalvolcano.co.uk/textcrawlermanual/regular_expression_find_replace.htm

你应该能够只使用$1的重置价值,一切都将被清理。