【原創】Perl Regex基礎整理

. 任何單字元的萬用字元(\n除外)* 匹配前面的內容零次或多次。+ 匹配前面的內容一次或多次。?匹配前面的內容零次或一次。  非貪婪符號。() 模式分組\1 反向(重複)引用圓括弧中匹配的文字。| 或(擇一匹配)[] 字元集。Eg: [a-zA-Z], [abcxyz]^ 脫字元 表示這些字元除外。只在字元集中使用。\d 數字\w 單詞字元 (數字,字母和底線) [a-zA-Z0-9_]\s 空白字元 (相當於[\f\t\n\r])\D 非數字\W 非單詞\S 非空白{} 字元出現次數。Eg:

【perl】開啟多個檔案——檔案控制代碼的使用

經常要講一個檔案分割成許多小檔案,如果每次判斷後要進行“開啟檔案控制代碼—》寫入資料—》關閉檔案控制代碼”,這樣重複的開啟、關閉檔案控制代碼是很耗時間的。進程經常會處於“S”睡眠狀態。如果同時開啟多個檔案,再判斷要寫入哪個檔案,則可以節省CPU等待的時間。for my $i (0..99){  $o="OUT".$i;  open $o,">test.$i" or die $!;  print $o "test";  close

【perl】perl實現case條件判斷的語句

方法一: 5.8版本 使用Switch包 use Switch;        switch ($val) {            case 1          { print "number 1" }            case "a"        { print "string a" }            case [1..10,42] { print "number in list" }            case (@array)   { print "number

Perl中關於數組的輸出——需要注意的地方

【例一】#!/usr/bin/perluse strict;@_=(a,b,c,d);print "@_\n";    顯示輸出為:a b c d 【例二】print @_."\n";        #或print @_."";顯示輸出為@_的個數:4 【例三】print @_;顯示輸出為:abcd     (不加空格) 【例四】@a=(a,b,c,d);@b=(e,f,g,h);則@a==@b為真,"@a"=="@b"為假 數組加上雙引號或單引號才表示一整個資料,不加則表示組數中元素的個數

perl use vars pragma使用

perl 中的vars是perl中的一個pragma(先行編譯指示符),專門用來預定義全域變數,這些預定義後的全域變數在qw()列表中,在整個引用perl檔案中皆可使用,即便使用use strict也不會報錯:use strict ;$str = "hello world!\n" ;報錯資訊:Global symbol "$str" requires explicit package name at ~vars.pl line 3.Execution of ~vars.pl aborted

Perl中的程式注釋:單行注釋和多行注釋

(一)單行注釋: 以#開頭的行都被perl認為是注釋。但是有一個例外,perl程式的第一行是#開頭的,他指定了perl程式的解譯器。例如:#print 1; (二)多行注釋:最常用的方法是使用 POD(Plain Old Documentations) 來進行多行注釋。方法如下: =podcodes to comment=cut注意:=pod =cut只能在行首以=開頭,以=cut結尾。 注意:=後面要緊接一個字元。=cut後面可以不用。

Programming in Perl Style

這是 ABC Perl Programming 之後的第二部分。名稱改成現在這樣是因為一本書,叫做 Higher Order Perl 。這本書的作者提到很多 Perl 的程式員在用 Perl 寫 C 的程式。這是一件很不幸的事情。當然了,所謂高手可以用任何方法做任何事情。但是,既然是在學習一個語言,至少要有三分樣吧。下面是 Higher-Order Perl 這本書前言的第一段。A well-known saying in the programming racket is that a

Learning Perl 4ed Reading Notes – Chapter4 Subroutines

1. 有關function和subroutine。本書中的function指的是Perl built-in的函數,subroutine指的是user-defined 函數,本質上來說,function和subroutine是一回事。和Pascal不一樣,Pascal中的function和subroutine是 不一樣的,function有傳回值,而subroutine是沒有傳回值的。 2. Defining a Subroutine. 很簡單: Code: Select allsub

Learning Perl 4ed Reading Notes – Chapter3 Lists and Arrays

1. List and Array. 本書中所講的List是一種資料結構,Array是Perl中用來存放List的資料類型。大部分情況下,這兩個單詞可以互換,意思是一樣的。和C不一樣 的是,Perl的Array不用定義元素的類型,也就是說,Perl中的Array中的每個元素可以是Number,也可以是String,元素的類型沒 必要都一樣。和C相同的就是,對Array的訪問都是通過下標進行的,第一個元素的數組下標是0。 2. Perl中的Array用起來和C中的沒什麼區別: $fred[0]

Learning Perl 4ed Reading Notes – Chapter2 Scalar Data

Learning Perl 4ED Reading Notes Chapter2 Scalar Data 1. Numbers. 所有的資料(int,float)在Perl內部都是double類型。當然,有的時候Perl在內部也會使用integer來表示int,因為這樣可以 提高程式的運行速度,但是這些邏輯對於程式員來說都是invisible的,所以,我們完全可以不用關心。 2. Floating-Point and Integer Literals. For example: 1.25 25

Leaning perl 第2章練習題答案

原文發表在網易部落格 2010-11-04 21:18:43 開始學習perl了,得多做題啊.(讓我對perl感興趣的是小羊駝書,呃這個就是羊駝了,不過怎麼感覺跟網路上某個神獸很像啊.)2.1-2.3 計算圓半徑計算#!perl -w $PI=3.141592654; print "ENTER the semidiameter:"; $semidiameter = <STDIN> ; chomp($semidiameter); if

Learning perl 第6章習題

原文發表在網易部落格 2010-11-19 13:10:11 第1題根據輸入的人名列印其姓氏#!perl -w #getfamilyname use strict; my %nameTable=("fred"=>"flintstone","barney"=>"rubble","wilma"=>"flintstone"); print "input person name,and the program will print his familyname.\

《Beginning Perl》讀書筆記1:0~3章

Perl概覽Perl最早由Larry Wall開發,是一種“膠水”語言,例如將上一個程式的輸出做簡單處理,轉換為下一個程式的輸入。第一版Perl發佈於1987年12月18日,然後一直穩步升級,直到Perl 5. Perl 5是一個大升級,包含了一些對於Perl 4舊有文法的改進。該書寫作之時的Perl版本是5.10.1。Perl仍在不斷升級中,下一個大版本是Perl 6,Perl

《Beginning Perl》讀書筆記3:6~10章

第6章:子過程/函數聲明:subfunction_name;定義:subfunction_name {...}函數調用同C:example_subroutine();或example_subroutine;example_subroutine('Perl is', 'my favorite', $language);或example_subroutine 'Perl is', 'my favorite',

《Beginning Perl》讀書筆記4:11~13章

第11章:引用引用一律聲明為標量類型(即$開頭的命名變數),使用\運算子取引用對引用變數的修改等同於對引用指向實際資料的修改取變數引用:my $scalar_r = \$scalar;取列表的引用:my $array_r = \@array;取雜湊的引用:my $hash_r = \%hash; 通過引用解決列表無法嵌套的問題: my @array1 = (10, 20, 30, 40, 50);my @array2 = ( 1, 2, \@array1, 3,

Perl中文/unicode/utf8/GB2312之間的轉換

Perl中文/unicode/utf8/GB2312編碼之間的轉換是一件很讓人頭疼的事情,我總結了以下主要的轉換方法,供大家瞭解參考。# author: jiangyujieuse utf8;use Encode;use URI::Escape;$/ = "/n";#從unicode得到utf8編碼$str = '%u6536';$str =~ s//%u([0-9a-fA-F]{4})/pack("U",hex($1))/eg;$str = encode( "utf8", $str

perl:修改原檔案

很多時候,我們希望對原有檔案的內容進行一定的修改,linux雖然有sed這個強大的文本編輯命令,但是他只能產生新檔案或列印到screen上(或許sed也具有修改原檔案的功能,小的才疏學淺,尚不知道,煩請大家告訴我),但在perl裡卻有這麼一個命令$^I例子:#!/usr/bin/perluse strict;$^I="";while(<>){        s/^rate.*/rate=0/;        s/^testMode.*/testMode=0/;       

perl:非貪婪的數量詞

例子:假設在fred and barney went bowling last night 上使用/fred.+barney/進行匹配。我們知道Regex將匹配上,下面我們具體的講解這一個過程:首先,子模式fred 將匹配其對應的字串。模式的下一部分是.+,它將匹配除了分行符號之外的任一字元,次數大於等於一。但,由於加號(+)是貪婪的;它將儘可能的進行匹配。因此,它將匹配剩餘的所有字串,包括night。現在對banrey

perl讀取大檔案out of memory

工作需要用perl寫了一個指令碼讀取1G多的檔案,直接報out of memory,對perl不是很熟悉就上網查了資料,後來發現是因為寫的讀取檔案內容時直接將所有檔案內容讀入數組導致這個問題。Code highlighting produced by Actipro CodeHighlighter

如何調試perl指令碼

perl是一門非常強大的文本處理語言,之前在寫perl指令碼時,基本上就用Notepad++和print解決了代碼編輯和調試的問題。Notepad++作為編輯器其實是一個相當不錯的選擇了,對perl的代碼高亮做得相當漂亮,喜歡的話還能自己擴充;但是對於調試這一塊,雖然也用這種土辦法寫出上千行的能工作的指令碼,但老是用print查看結果總不是個辦法。 研究了一下,發現兩個不錯的工具: Komodo

總頁數: 64 1 .... 41 42 43 44 45 .... 64 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.