[D]Perl 正则表达式

cindylanzao 2012-07-02 12:30:43
s/\s+(!\w+)/$1/这句是怎么把 huge (huge !)dinosaur 替换为 huge (huge!) dinosaur的

---------------------------
Double行动:
原帖分数:20
帖子加分:20
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dahetaoxiaobai 2012-07-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

貌似那个正则表达式应该没法匹配,所以也就无法替换;如果要替换,貌似下面这个可以:

Perl code
s/\s+(!\w*)/$1/
[/Quote]
+1
s/\s+(!\w+)/$1/里面的+号应该是指\w(单词的集合)至少要有一个,也不是!号后起码要有一个字母,你那个正则表达式里没有!后跟\w的,所以应该是没法匹配的。$1代表的是第一个匹配上的()里面的表达式,也就是!\w+
bugs2k 2012-07-02
  • 打赏
  • 举报
回复
貌似那个正则表达式应该没法匹配,所以也就无法替换;如果要替换,貌似下面这个可以:

s/\s+(!\w*)/$1/
proorck6 2012-07-02
  • 打赏
  • 举报
回复
在正则表达式里,叹号不是元字符,但小括号是,所以(!\w+)就是以叹号开头的单词。
jiuchang 2012-07-02
  • 打赏
  • 举报
回复
这个正则说的是对于空格+叹号开头的单词的模式,使用叹号开头的单词替换,这样就把空格给删除了
cindylanzao 2012-07-02
  • 打赏
  • 举报
回复
这是小骆驼书上的例子,能讲解一下是怎么匹配的吗,谢谢了

37,719

社区成员

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

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