=ab=cf{note} 如何变成ab {note}cf {note}

4 views
Skip to first unread message

Tomt

unread,
May 14, 2012, 8:31:32 AM5/14/12
to vim...@googlegroups.com
如题, 如何对每一个符合的结构 加上 最后的 {note}
 

於卓慧

unread,
May 14, 2012, 10:19:10 AM5/14/12
to vim...@googlegroups.com
录制宏?

发自我的 iPhone

在 2012-5-14,下午8:31,Tomt <tomtf...@gmail.com> 写道:

如题, 如何对每一个符合的结构 加上 最后的 {note}
 

--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛

Tomt

unread,
May 14, 2012, 10:37:49 AM5/14/12
to vim...@googlegroups.com
这个是简化结构。 而且一行上的数量不定。

2012/5/14 於卓慧 <agas...@gmail.com>

Ricky

unread,
May 14, 2012, 11:06:33 AM5/14/12
to vim...@googlegroups.com
�ò����ܽ����?
%s/=\(ab\)=\(cf\){note}/\1 {note}\2 {note}/g
On 2012-5-14 22:37, Tomt wrote:
����Ǽ򻯽ṹ�� ����һ���ϵ�����������

2012/5/14 �׿�� <agas...@gmail.com>
¼�ƺꣿ

�����ҵ� iPhone

�� 2012-5-14������8:31��Tomt <tomtf...@gmail.com> ���

���⣬ ��ζ�ÿһ����ϵĽṹ ���� ���� ��note��
 
--
Ҫ�˶�����̳���뷢�ʼ��� vim-cn+un...@googlegroups.com
���ѡ���ͨ�� http://groups.google.com/group/vim-cn ���ʸ���̳
--
Ҫ�˶�����̳���뷢�ʼ��� vim-cn+un...@googlegroups.com
���ѡ���ͨ�� http://groups.google.com/group/vim-cn ���ʸ���̳

--
Ҫ�˶�����̳���뷢�ʼ��� vim-cn+un...@googlegroups.com
���ѡ���ͨ�� http://groups.google.com/group/vim-cn ���ʸ���̳

vvei Ioung

unread,
May 14, 2012, 11:26:14 AM5/14/12
to vim...@googlegroups.com
数量不定是指类似于“=ab=cf{note}” 这样的结构在一行中可能有多个,还是说“=ab=cf=ed=xx{note}” 这样的“=ab" 这种结构数量不定?

2012/5/14 Ricky <ricky...@gmail.com>
用捕获不能解决吗?

%s/=\(ab\)=\(cf\){note}/\1 {note}\2 {note}/g

On 2012-5-14 22:37, Tomt wrote:



--
Our enemy shall fall.
Death to all who oppose us!!

Tomt

unread,
May 15, 2012, 6:33:53 PM5/15/12
to vim...@googlegroups.com

如何提取html中的class属性(一行中有多个class)
Inbox
x

Tomt
May 14 (2 days ago)

to vim-cn
<ul class="c1 c2 c3">          <li class="c5 c7" > </li> </ul>
如何 提取 class
最好获得结果: c1 c2 c3 c5 c7


现在用  : %s/^.\{-}\(class="\([0-9a-zA-Z -]\+\)".\{-}\)\+.\{-}$/\2/g
只能提取第一个class的内容
May 14 (1 day ago)


to vim-cn
写了一个,对付上面的例子是没问题的,权作抛砖引玉
%s/.\{-}class="\([^"]*\)".\{-}\(class=\|$\)\@=/\1 /g

2012/5/14 Tomt <tomtf...@gmail.com>
Tomt
May 14 (1 day ago)

to vim-cn
如果问题改成:
<ul class="c1 c2 c3">          <li class="c5 c7" > </li> </ul> { note }
变成:
c1 c2 c3 {note}
c5 c7 {note}
怎么写?

刚才试图老兄的方法写, 匹配不对。 有两个不理解的地方。
%s/.\{-}class="\([^"]*\)"[^{]\{-}\(class=\|{\)\@=[^{]*\({[^}]*}\)/\1\2/g

高亮_红A:   加A后,不匹配。
高亮_黄B:  \2是让人无法理解
May 14 (1 day ago)

to vim-cn
你要把一个{note}变成两个,
我只能想到一个办法,就是用n条语句,把每行有1,2,3,4,5....个class的情况分别枚举出来处理(但愿你的文本一行没有太多的class)
不然只能写脚本了

你用\2对应的是\(class=\|{\)这对括号,应该用\3才能匹配到后面的{note},但是即使改成\3,也只能出来
c1 c2 c3{ note }
不能出现你需要的结果


2012/5/14 vvei Ioung <lord....@gmail.com>
Reply all
Reply to author
Forward
0 new messages