PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Perl
[問題] 正規表示法處理問題
作者:
SmileU
(SmileU)
2013-09-29 01:23:31
大家好我是perl的新手,有個正規表示法的問題想請教~
現有一字串及三個數,以空白分隔,希望抓出第二個數,如下例希望抓出 1.5
hi_10_test 1.0 1.5 2.5
用以下程式碼可以正確找到 $1=1.5
/_10.*\s\d.*\s(\d.*)\s\d.*/
但若寫成這樣時卻會抓到最後一個數字,$1=2.5
/_10.*\s\d.*\s(\d.*)\s.*/
/_10.*\s\d.*\s(\d.*)/
我想可能是我誤解某些符號的意思,想請教問題出在哪裡呢?
謝謝大家
作者:
xatier
(一切重來就好了...)
0000-00-00 00:00:00
有看過 perldoc 的 retut 嗎?
作者:
scwg
( )
2013-09-29 01:26:00
因為 perlre 預設是「貪心」的, 也就是第一個 \s\d.* 會盡可能 match 最多字元. 於是把 " 1.0 1.5" 都吃掉了, 然後括號對到第三個數字, \s 對到換行, .* 不用對到任何東西.建議你用更精確的 pattern, 如 (?:\d|\.)+ 而不是 \d.*
作者:
SmileU
(SmileU)
2013-09-29 10:01:00
原來如此,我以為.*不會抓到空白的~非常謝謝你的回覆:)
作者:
CindyLinz
(Cindy Wang)
2013-09-29 16:08:00
預設情況 . 會忽略的是換行歐~~
繼續閱讀
[問題] 同時開啟多個檔案並一次讀一行
kezjiay
[問題] 運算問題
yowantl
Re: [問題] 當前目錄下的所有檔案內容
kockroach
Re: [問題] 檔案內容取值問題
clanguage
Re: [問題] 當前目錄下的所有檔案內容
xatier
[問題] 檔案內容取值問題
liuintel
[問題] 檔案內容比對問題
liuintel
Re: [問題] 當前目錄下的所有檔案內容
CindyLinz
[問題] 當前目錄下的所有檔案內容
liuintel
[問題] 請問輸入檔案含變數
liuintel
Links
booklink
Contact Us: admin [ a t ] ucptt.com