QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1096|回复: 4

求一个正则的写法

[复制链接]
发表于 2005-6-16 11:26:08 | 显示全部楼层 |阅读模式
在进行ubb转换时想简化ul和ol的写法,把下面的代码
[code:1]
[ul]
*. laksd
*. laksd
[/ul]
[/code:1]
转换成这样
[code:1]
[ul]
<li>laksd</li>
<li>laksd</li>
[/ul]
[/code:1]
要求*. laksd这样的条目只有在ul和ol之间才转换成li

我这样写'%(\[ol\])(\*\. .*?)(\[/ol\])%s'却总不达效果
发表于 2005-6-18 19:55:08 | 显示全部楼层
你的意思是不是找到[ul]和[/ul]作为标记来替换标记中间的你内容?如果是这样的话,你的表达式当然不会起作用,因为这个是在一行中才起作用。你要实现这个的话,应该使用sed的带大写子母参数的专门处理多行的命令。这个我很少用,我帮你查查,如果可以解决我再把它贴出来。
回复

使用道具 举报

 楼主| 发表于 2005-6-20 08:21:45 | 显示全部楼层
是的。谢谢watch1394
回复

使用道具 举报

发表于 2005-6-20 11:24:06 | 显示全部楼层
的确是,但是sed大写字母的我很少用,看man也看不太懂,我就用过N呵呵,再研究下
回复

使用道具 举报

发表于 2005-7-11 10:13:52 | 显示全部楼层
我仔细研究了一下sed,你试试这个行不行(我没有测试,因为我现在在上班,用的是公司的机器,没有Linux的):
[code:1]
sed '
/\[ul\]/,/\[\/ul\]/{
/laksd/s/.*\(laksd\)/<li>\1<\/li>/
}' YourFile
[/code:1]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-30 12:26 , Processed in 0.038725 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表