返回列表 发帖

[问题求助] sed 如何提取关键字后面的第一对引号中的内容

本帖最后由 随风 于 2011-6-2 13:48 编辑

xxx"abcx"xabc"1"xx"xxx"abc"2"abc"3abc3"xx"x
上行中abc"引号 为关键字,要提取他后面第一对引号中的内容,其中xxx为未知数

需提取的结果为  1 2 3abc3
技术问题请到论坛发帖求助!

还是vbs:
Dim vbstr, rgstr
vbstr = "strxxx""abcx""xabc""1""xFFF""A""xxFFFx""xxx""abc""2""xxFFF""B""xxabc""3abc3""xx""x""FFF""C""xxxFFF"
Set regex = New RegExp
regex.Global = True
regex.IgnoreCase = True
regex.Pattern = ".*?abc\x22(.*?)\x22.*?fff\x22(.*?)\x22"
For Each match In regex.Execute(vbstr)
  rgstr = rgstr & match.Submatches(0) & Chr(9) & match.Submatches(1) & vbCrLf
next
Set regex = Nothing
MsgBox rgstrCOPY
***共同提高***

TOP

5# tmplinshi

strxxx"abcx"xabc"1"xFFF"A"xxFFFx"xxx"abc"2"xxFFF"B"xxabc"3abc3"xx"x"FFF"C"xxxFFF
太美丽了,很巧妙的方法,学习了.
增加难度
上面行 FFF" 为新的关键字
要求显示如下
1 A
2 B
3abc3 C
技术问题请到论坛发帖求助!

TOP

本帖最后由 batman 于 2011-6-2 21:30 编辑

还是vbs正则方便:
Dim vbstr, rgstr
vbstr = "xxx""abcx""xabc""1""xx""xxx""abc""2""abc""3abc3""xx""x"
Set regex = New RegExp
regex.Global = True
regex.IgnoreCase = True
regex.Pattern = ".*?abc\x22(.*?)\x22"
For Each match In regex.Execute(vbstr)
  rgstr = rgstr & match.Submatches(0)
next
Set regex = Nothing
MsgBox rgstrCOPY
ps:这个正则可以想取哪段取哪段的,很方便。。。
***共同提高***

TOP

sed -n "s/abc\x22/\n/g; s/\x22[^\n]*//g; s/[^\n]*//; p"COPY

TOP

再补充一点 列子中的 数字,字母有可能是汉字,符号。
技术问题请到论坛发帖求助!

TOP

sed  "s/\(abc\"[0-9a-z]*\"\)/\n\1\n/g" 1.txt | sed -n "/abc\"[0-9a-z]*\"/ s/.*\"\(.*\)\"/\1/p" | sed ":a;N;$!ba;s/\n/ /g"COPY
晚上到家再想一个简单的
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

菜鸟路过。
期待解答。。

TOP

返回列表