我想在Perl中匹配正則表達式。我的代碼如下所示:在Perl正則表達式中轉義特殊字符
my $source = "Hello_[version]; Goodbye_[version]";
my $pattern = "Hello_[version]";
if ($source =~ m/$pattern/) {
print "Match found!"
}
問題出現在括號表示一個字符類(或讓我讀)時的Perl嘗試匹配正則表達式,而比賽結束以失敗告終。我知道我可以使用\[
或\]
來避開括號,但是這需要另一個代碼塊來瀏覽字符串並搜索括號。有沒有辦法讓括號自動忽略而不單獨逃脫?
快速提示:我不能只添加反斜槓,因爲這只是一個例子。在我的真實代碼中,$source
和$pattern
都來自Perl代碼之外(URIEncoded或文件)。
+1使用索引() – sln
究竟是什麼「正則表達式字符」?我的印象是,正則表達式只是匹配字符串中的字符串或模式的一種手段,而不是一組特定的字符,除非我還沒有意識到另一種含義。 雖然,感謝索引()。當我明天在我的服務器上時,我會給你一個鏡頭;我確實認爲index()會比正則表達式匹配更好,更清晰。 – CoV
「正則表達式字符」是一個錯字,我的意思是寫「正則表達式元字符」。 – tadmc