Board logo

标题: 区别每行汉字开头还是非汉字开头。并自动整理 [打印本页]

作者: 405285977     时间: 2009-4-21 03:35    标题: 区别每行汉字开头还是非汉字开头。并自动整理
区别每行汉字开头还是非汉字开头。并自动整理

我有一些文本1.txt。内容如下:


干眼症患者的渗透压是:
1.干眼症患者
的渗透压是
A.大于305m Osm/L
B.等于300m Osm/L
C.小于300m Osm/L
D.等于312m Osm/L
E.大于312m Osm/L
2.角巩膜缘的
宽度
约为
A.0.9mm
B.1mm
C.0.5mm
D.1.2mm
E.O.75mm
3.口服乙酰唑胺可
出现


我希望题目都是一行。这样方便我整理。希望批处理的功能整理为
1.干眼症患者的渗透压是
A.大于305m Osm/L
B.等于300m Osm/L
C.小于300m Osm/L
D.等于312m Osm/L
E.大于312m Osm/L
2.角巩膜缘的宽度约为
A.0.9mm
B.1mm
C.0.5mm
D.1.2mm
E.O.75mm
3.口服乙酰唑胺可出现


思路是每行第一个字母只能是数字或字母。如果是汉字。则自动cut这一段汉字到上一行。

谢谢大大们解答。

作者: yishanju     时间: 2009-4-21 04:00
干眼症患者的渗透压是:
1.干眼症患者
的渗透压是

这个是不是弄错,多打了一行

作者: 405285977     时间: 2009-4-21 04:04
恩。

原始文本应该是

1.干眼症患者
的渗透压是
A.大于305m Osm/L
B.等于300m Osm/L
C.小于300m Osm/L
D.等于312m Osm/L
E.大于312m Osm/L
2.角巩膜缘的
宽度
约为
A.0.9mm
B.1mm
C.0.5mm
D.1.2mm
E.O.75mm
3.口服乙酰唑胺可
出现


就是首字只能是数字或字母。。。

作者: yishanju     时间: 2009-4-21 04:49
思路如果回车换行之后的字符不是字母或者数字,就把回车换行丢掉

@echo off
copy a.txt 1.txt /y
fr 1.txt -rnnlic:"(\r\n)()" -t:"\2"
start 1.txt
pause

FR 下载: http://baiy.cn/utils/fr/index.htm

作者: 405285977     时间: 2009-4-21 04:59
谢谢啦。可以了。呵呵。专业学的不一样。思路也差这么远。还是学计算机的牛。。。

作者: freeants001     时间: 2009-4-21 05:02
sed ":a;$!N;s/\n\([\x80-\xFF]\)/\1/;ta;P;D" aa.txt

作者: netbenton     时间: 2009-4-21 14:00
@echo off&setlocal enabledelayedexpansion
set add=
for /f "delims=" %%a in (1.txt) do (set "str=%%a"&call :sub)
echo !add!
pause
goto :eof

:sub
set one=!str:~,1!
if !one! gtr zz (set "add=!add!!str!") else (echo.!add!&set add=!str!)

作者: jmz573515     时间: 2009-4-21 21:51

set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("1.txt")
s=file.readall
file.close
do until instr(s,vbcrlf)=0
i=instr(s,vbcrlf)
if instr("123456789ABCDEFGHIZKLMNOPQRSTUVWXYZabcdefghizklmnopqrstuvwxyz",mid(s,i+2,1))<>0 then
sm=sm&left(s,i) & vbcrlf
else
sm=sm & left(s,i-1)
end if
s=mid(s,i+2)
loop
wscript.echo sm

作者: freeants001     时间: 2009-4-22 00:29
fso=WScript.createobject("scripting.filesystemobject");
sss=fso.opentextfile("1.txt").readall();
re=/\r\n(?=)/g
sss=sss.replace(re,"");
fso.createtextfile("1_dest.txt",1,0).write(sss)


Last edited by freeants001 on 2009-4-22 at 00:32 ]

作者: 405285977     时间: 2009-4-22 05:55
谢谢大家了。。。

作者: yishanju     时间: 2009-4-22 09:03
这个帖子值得收藏了