求一个正则的写法

求一个正则的写法

在进行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'却总不达效果
你的意思是不是找到[ul]和[/ul]作为标记来替换标记中间的你内容?如果是这样的话,你的表达式当然不会起作用,因为这个是在一行中才起作用。你要实现这个的话,应该使用sed的带大写子母参数的专门处理多行的命令。这个我很少用,我帮你查查,如果可以解决我再把它贴出来。
是的。谢谢watch1394
的确是,但是sed大写字母的我很少用,看man也看不太懂,我就用过N呵呵,再研究下
我仔细研究了一下sed,你试试这个行不行(我没有测试,因为我现在在上班,用的是公司的机器,没有Linux的):
[code:1]
sed '
/\[ul\]/,/\[\/ul\]/{
/laksd/s/.*\(laksd\)/<li>\1<\/li>/
}' YourFile
[/code:1]