perl 裸词问题,急求高人解惑

suprich 2010-07-02 03:42:58
$url =~ m/<h3 ch=\"\"><a target=\"_blank\" href=\"(.*)\">(.*)</a>/i
这个正则里面的"a"被警告是裸词

$1 =~ m/z/q(.*).htm/i 这个正则也有问题

本人初学perl 望高人指点
...全文
112 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
suprich 2010-07-02
  • 打赏
  • 举报
回复
感激涕零啊,马上放分!!
fibbery 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 feilniu 的回复:]
2楼漏掉了每行代码的行尾“;”。

另外,$1属于特殊变量,不要使用这个变量名,或对该变量做正则运算。
[/Quote]

:)
feilniu 2010-07-02
  • 打赏
  • 举报
回复
2楼漏掉了每行代码的行尾“;”。

另外,$1属于特殊变量,不要使用这个变量名,或对该变量做正则运算。
fibbery 2010-07-02
  • 打赏
  • 举报
回复
二、三楼的答案是正确的。
jiuchang 2010-07-02
  • 打赏
  • 举报
回复
主要是正则分界符的问题

如果用/做分界符,则正则表达式中出现/的地方要用\来做转义
如果嫌这样麻烦的话,就换用一个正则表达式中没有出现的符号来做分界符,如%, !什么的都可以
feilniu 2010-07-02
  • 打赏
  • 举报
回复

$url =~ m!<h3 ch=\"\"><a target=\"_blank\" href=\"(.*)\">(.*)</a>!i
$1 =~ m!z/q(.*)\.htm!i

你的正则表达式中包含了“/”,要么加反斜杠转义,要么把正则匹配运算标记改成“/”以外的别的字符。
一般来说,保证正则表达式中不包含正则匹配运算标记是最好的办法。
Aylazhang 2010-07-02
  • 打赏
  • 举报
回复
代码风格很不好,字符串的地方最好用引号。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧