jerryfleming 发表于 2005-6-16 11:26:08

求一个正则的写法

在进行ubb转换时想简化ul和ol的写法,把下面的代码

[ul]
*. laksd
*. laksd
[/ul]

转换成这样

[ul]
<li>laksd</li>
<li>laksd</li>
[/ul]

要求*. laksd这样的条目只有在ul和ol之间才转换成li

我这样写'%(\)(\*\. .*?)(\)%s'却总不达效果

watch_1394 发表于 2005-6-18 19:55:08

你的意思是不是找到和作为标记来替换标记中间的你内容?如果是这样的话,你的表达式当然不会起作用,因为这个是在一行中才起作用。你要实现这个的话,应该使用sed的带大写子母参数的专门处理多行的命令。这个我很少用,我帮你查查,如果可以解决我再把它贴出来。

jerryfleming 发表于 2005-6-20 08:21:45

是的。谢谢watch1394

zhy2111314 发表于 2005-6-20 11:24:06

的确是,但是sed大写字母的我很少用,看man也看不太懂,我就用过N呵呵,再研究下:)

watch_1394 发表于 2005-7-11 10:13:52

我仔细研究了一下sed,你试试这个行不行(我没有测试,因为我现在在上班,用的是公司的机器,没有Linux的):

sed '
/\[ul\]/,/\[\/ul\]/{
/laksd/s/.*\(laksd\)/<li>\1<\/li>/
}' YourFile
页: [1]
查看完整版本: 求一个正则的写法