2015-12-31 78 views
-4

任何人都可以告诉我这个代码中的[Cc]是什么?我知道它做了什么,但我不知道它叫什么。什么是/ [Cc] at/in perl?

#!/usr/bin/perl 

$sentence = "Big cat sat."; 
$sentence =~ /[Cc]at/; 

print "$`, $&, $'\n"; #prints Big, cat, sat. 

也没有人知道什么是perl相当于python 2.7的re.search?我一直发现的是关于python的替换是可变的,并没有真正说出关于搜索的任何事情。

+3

正则表达式/正则表达式 – Marged

+0

在最开始的发生'/富/','foo'是正则表达式。因此,在'//'里面,你的'[Cc]'是regex语法。 –

+1

那里只是标准的正则表达式,没有什么特定的perl。这甚至不是PCRE或扩展,这是任何风格的有效正则表达式。 []括号与它们所包含的任何字符匹配。 –

回答

4

我不太了解密切的选票,但是你提出了多个问题的错误!

很难知道发生了什么绊倒你,但是这可能会帮助

整体格局/[Cc]at/正则表达式正则表达式正则表达式,而特定组件[Cc]被称为字符类,它匹配任何一组字符;在这种情况下是大写或小写C字符。它在Regular Expression Syntax的Python文档中有记录,该文档将其称为“一组字符”,并将诸如\d(数字数字)和\w(“字”字符)之类的内容说成是字符类。在Perl中,方括号结构也是一个字符类别

re.search在同一页面上的文档非常简单,而且您似乎在代码中使用了它的Perl等价物,所以我不了解您遇到的问题“重新具有

在Python,

object = re.search(pattern, string) 

检查图案的发生的任何地方,并设置objectmatch object如果找到,或None否则

这是在Perl一样使用结合操作者=~这样

my $result = $string =~ /pattern/ 

如果找到匹配其设定$result值,或否则

看看Python文档search() vs. match()

re.match相同re.search,除了匹配必须在字符串