免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1334 | 回复: 6
打印 上一主题 下一主题

关于锚定匹配的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-26 04:58 |只看该作者 |倒序浏览
本帖最后由 太阳peach 于 2013-03-26 04:58 编辑

现在有一个文档,其中包含有类似的行如下:
-
-
-
-
-
-
pay-per-view
...
我需要将“-”换为其他语句,但是在匹配的时候不能够换掉“pay-per-view"当中的“-”。所以使用了锚定/^-$/,但是这么使用的时候无法匹配到这些连字符,只有使用/^-/的时候才可以匹配到。已知连字符后就是换行符;而且就算chomp了也没有用。请问这是为什么?

谢谢~

论坛徽章:
0
2 [报告]
发表于 2013-03-26 08:02 |只看该作者
无代码,无真相。
sinian126 该用户已被删除
3 [报告]
发表于 2013-03-26 08:11 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
sinian126 该用户已被删除
4 [报告]
发表于 2013-03-26 08:12 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
5 [报告]
发表于 2013-03-26 08:39 |只看该作者
可以:
请问这是为什么?
  1. #!/usr/bin/perl

  2. my $other = '其他语句';
  3. while (<DATA>) {
  4.     s/^-$/$other/;
  5.     print;
  6. }
  7. __DATA__
  8. -
  9. -
  10. -
  11. -
  12. -
  13. -
  14. pay-per-view
复制代码
  1. 其他语句
  2. 其他语句
  3. 其他语句
  4. 其他语句
  5. 其他语句
  6. 其他语句
  7. pay-per-view
复制代码

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
6 [报告]
发表于 2013-03-26 09:01 |只看该作者
此"-"非彼-?{:3_199:}

论坛徽章:
0
7 [报告]
发表于 2013-03-26 09:03 |只看该作者
在默认情况下,^ 和 $ 分别匹配字符串的开始和结束。但要匹配多行文本中每行的开始和结束,要加 //m标志。
  1. use 5.010;

  2. my $str =<<EOF;
  3. 1
  4. 2
  5. 3
  6. EOF

  7. # //s 标志是让 . 可以匹配回车
  8. if ($str =~ /^(.*?)$/s) {
  9.     say $1;
  10. }
  11. # 输出:
  12. # 1
  13. # 2
  14. # 3

  15. if ($str =~ /^(.*?)$/ms) {
  16.     say $1;
  17. }
  18. # 输出:
  19. # 1
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP