精華區beta RegExp 關於我們 聯絡資訊
大大好: 小弟想要一個字串,但是它要排除 .php 做結尾的字串才行 ex: xyz123 abc.tw abc.xyz 這些都可過關 但要阻擋 test.php 的字串,不知要如何下? ^(.*[^.][^p][^h][^p])$ 可是這樣會讓 xxxxp 的字串過不了哩! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.72.212.138
LyinZ:^.*(?<!\.php)$ 03/19 03:19
bcse:可以講解一下 ?<! 是什麼意思嗎? 03/19 06:19
LyinZ:perldoc說是 zero-width negative look-behind assertion @@ 03/19 13:45
> -------------------------------------------------------------------------- < 作者: LPH66 (IWH68S0XZ8M89) 看板: RegExp 標題: Re: [問題] 若想排除 .php 結尾的字串要如何下? 時間: Wed Mar 19 07:32:04 2008 ※ 引述《laudieh (laudieh)》之銘言: : 大大好: 小弟想要一個字串,但是它要排除 .php 做結尾的字串才行 : ex: xyz123 abc.tw abc.xyz 這些都可過關 : 但要阻擋 test.php 的字串,不知要如何下? : ^(.*[^.][^p][^h][^p])$ 可是這樣會讓 xxxxp 的字串過不了哩! 除了推文的方法外(其實我也看不太懂<!) 也可以這樣反向思考: 要收的有 (1) 不以p結尾: ^.*[^p]$ (2) p結尾但前一字不是h: ^.*[^h]p$ (3) hp結尾但前一字不是p: ^.*[^p]hp$ (4) php結尾但前一字不是.: ^.*[^.]php$ 合起來就成了 ^.*([^p]|[^h]p|[^p]hp|[^.]php)$ -- ˊ_▂▃▄▂_ˋ. ◣          ▅▅ ▅▅ ι●╮   ./◤_▂▃▄▂_◥ \'▊   HARUHI █████ <■┘   ◤◤◥█◥◥█Δ   ISM    By-gamejye ¢|\   ▌▌ζ(▏●‵◥′●)Ψ ▏           █    ⊿Δ    /|▋ |\ ▎         ハルヒ主義      ▄█ ◥◥|◣ ‵′ ◢/'◢◢S.O.S 世界をいに盛り上げるための宮ハルヒの    -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.250.80
giacch:推觀念... (小聲的說...) 樓下那篇也推啦... XD 03/19 22:24
> -------------------------------------------------------------------------- < 作者: LyinZ (琳子) 看板: RegExp 標題: Re: [問題] 若想排除 .php 結尾的字串要如何下? 時間: Wed Mar 19 14:54:23 2008 ※ 引述《LPH66 (IWH68S0XZ8M89)》之銘言: : ※ 引述《laudieh (laudieh)》之銘言: : : 大大好: 小弟想要一個字串,但是它要排除 .php 做結尾的字串才行 : : ex: xyz123 abc.tw abc.xyz 這些都可過關 : : 但要阻擋 test.php 的字串,不知要如何下? : : ^(.*[^.][^p][^h][^p])$ 可是這樣會讓 xxxxp 的字串過不了哩! : 除了推文的方法外(其實我也看不太懂<!) : 也可以這樣反向思考: : 要收的有 : (1) 不以p結尾: ^.*[^p]$ : (2) p結尾但前一字不是h: ^.*[^h]p$ : (3) hp結尾但前一字不是p: ^.*[^p]hp$ : (4) php結尾但前一字不是.: ^.*[^.]php$ : 合起來就成了 : ^.*([^p]|[^h]p|[^p]hp|[^.]php)$ 如果是在寫程式, 不必侷限於「正面表列」的 regex 的話, 直接 NOT \.php$ 不就好了嗎 ^^| 像 perl 的話就是 $str !~ /\.php$/ php 的話應該是 !preg_...(...) 之類的吧? ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.55
giacch:推觀念... 03/19 22:23