2015-12-31 120 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,除了匹配必須在字符串