有谁能告诉我这个代码中的[抄送]是什么?我知道它的作用,但我不知道它叫什么。
#!/usr/bin/perl
$sentence = "Big cat sat.";
$sentence =~ /[Cc]at/;
print "$`, $&, $'\n"; #prints Big, cat, sat.
也有人知道python 2.7&re.search的perl等价物是什么吗?我一直在寻找的是关于python的替换是可变的,并没有真正说明搜索。
答案 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
$result
与re.match
相同,但匹配必须发生在字符串的最开头