【发布时间】:2008-09-25 21:15:20
【问题描述】:
假设我想编写一个正则表达式将所有<abc>、<def> 和<ghi> 标签更改为<xyz> 标签。我还想将它们的结束标签更改为</xyz>。这似乎是一个合理的正则表达式(忽略反引号;如果我不包含小于号,StackOverflow 会遇到问题):
`s!<(/)?(abc|def|ghi)>!<${1}xyz>!g;`
而且它也有效。唯一的问题是,对于打开标签,可选的 $1 变量被分配为 undef,因此我收到“使用未初始化的值...”警告。
解决此问题的优雅方法是什么?我宁愿不把它变成两个单独的正则表达式,一个用于打开标签,另一个用于结束标签,因为这样需要维护两个 taglist 副本,而不仅仅是一个。
编辑:我知道我可以在代码的这个区域关闭警告,但我不认为“优雅”。
【问题讨论】:
-
对于小于号,请尝试使用