perl / per中的/ [Cc]是什么?

时间:2015-12-31 22:08:41

标签: python perl

有谁能告诉我这个代码中的[抄送]是什么?我知道它的作用,但我不知道它叫什么。

#!/usr/bin/perl

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

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

也有人知道python 2.7&re.search的perl等价物是什么吗?我一直在寻找的是关于python的替换是可变的,并没有真正说明搜索。

2 个答案:

答案 0 :(得分:7)

括号中的字符组称为character classes字符集

正则表达式只有simple formal definition只有几个操作。其中一项操作是alternation。轮换允许您匹配两组字符串的并集。字符集是在一组单个字符串上进行交替的语法。更常见的是,当我们谈论alternations in regular expressions时,我们指的是垂直条|的使用,它与条形图两侧的表达式的并集相匹配。

答案 1 :(得分:4)

我真的不明白亲密的选票,但你错误地提出了不止一个问题!

很难知道是什么让你沮丧,但这可能会有所帮助

模式/[Cc]at/作为一个整体是正则表达式 regexp 正则表达式,而特定组件{{1被称为字符类,它匹配任何一组字符;在这种情况下,大写或小写C字符。它在Regular Expression Syntax的Python文档中有记录,它将其称为“一组字符”,并说出[Cc](数字)和\d(“单词”字符)之类的内容作为角色类。在Perl中,square-bracket结构也是一个字符类

同一页面上re.search的文档非常简单,您似乎在代码中使用了Perl等效项,因此我不理解您遇到的问题

在Python中,

\w

字符串中的任意位置检查 pattern 的出现情况,如果找到object = re.search(pattern, string) ,则将object设置为match object,或{{1}否则

在Perl中使用绑定运算符 None就像这样

=~

如果找到匹配项,则将my $result = $string =~ /pattern/ 设置为 true 值,否则 false

查看search() vs. match()

的Python文档

$resultre.match相同,但匹配必须发生在字符串的最开头