[請益] 正規式苦手請益

作者: chan15 (ChaN)   2017-12-28 18:27:25
請教各位怎麼比對一個字串只能符合數字、英文、底現、橫線、冒號,但結尾不能是冒號的寫法呢
目前最接近的寫法如下
$strings = [
'aaa:bbb-cool',
'aaa-22-bbb_cool3',
'aaa:bbb-cool:',
'aaa_bbb-cool:',
'aaa_bbb-cool',
'bbbb:>dd',
'hihi%',
'大家好',
'0000000000',
'11111:2222:3333',
'11111:2222:3333:',
'[email protected]@@1',
'大家好',
];
$pattern = '/[0-9a-zA-Z]+$/i';
foreach ($strings as $string) {
var_dump($string.' is '.preg_match($pattern, $string));
}
不過不知道為什麼 [email protected]@@1 跟 bbbb:>dd 也符合
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-12-28 18:51:00
阿不就 ^[\w-:]+[\w-]$
作者: chan15 (ChaN)   2017-12-28 19:56:00
這好像差有點多 XD
作者: LPH66 (-6.2598534e+18f)   2017-12-28 23:39:00
主要觀念是你要分開描述的東西就分開寫至於 \w 就只是 [0-9A-Za-z_] 的簡寫而已
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-12-29 15:33:00
阿你是跑過了沒 跑過完全符合才會貼上來regex一撇都沒有就覺得可以用眼睛看 也是奇葩
作者: xdraculax (首席怪叔叔)   2017-12-31 12:07:00
一樓正解,原PO的才是差有點多... 除非題目敘述有錯
作者: vi000246 (Vi)   2016-01-02 09:54:00
^[\w_\-:]+(?<!:)$原來\w有底線了 沒注意到
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-01-03 22:58:00
不好意思,(1)全部要符合\w:-(2)最後不要符合冒號標準做法就是那樣 不需要用到regex其他複雜的功能你那麼愛學look-ahead 到底知不知道[^]的功能我認為你不知道 從你一開始寫的就看得出來不過還不會跑就努力學飛到月球 那我也不應該阻止 顆
作者: xdraculax (首席怪叔叔)   2016-01-04 10:20:00
不懂就問,不要用嗆的激將法擠出知識,很糟的惡習不要去評論你不懂的東西是對是錯,只是自曝其短你的行為才是給網友為陌生人免費教學的熱誠潑冷水
作者: vi000246 (Vi)   2016-01-04 14:49:00
?<!的用法可以去google lookbehind
作者: chan15 (ChaN)   2016-01-04 16:34:00
好的,感謝你
作者: lucky1lk (賭到沒錢的人)   2016-01-06 11:20:00
我直接跟你講 你PO錯版了... 還嗆人@@ 你看看你回啥話吧
作者: chan15 (ChaN)   2016-01-08 16:46:00
到底哪裡嗆可以明講嗎,我是真的沒發現,有人回答我問題我嗆人幹嘛,那句真的冒犯了提點我一下我願意致歉的
作者: tkdmaf (皮皮快跑)   2016-01-10 08:08:00
一開始人家告訴你做法,你卻在講別人有沒有做錯,這是導火線然後你坦白說的那整段就是在嗆了我只能告訴你一件事:發問者是沒有資格講人權的這話聽起來不合理,但發問者同時也就是受教者,拋出什麼問題就只能把人的回答和意黨單全收,沒有資格囉唆。如果你硬要問為什麼,那是因為要學要知道的人是你,不是回答的人然後發問的人永遠都會忘記的事情是:當你拋出問題有人回應你答案,不管好或壞起碼人家願意理你,提點你。如果人家壓根就不想理你那你才真的慘了
作者: kyleJ (資工人)   2016-01-10 17:03:00
不要去評論你不懂的東西是對是錯+1 教別人最討厭遇到這種的 自己沒去搞懂也至少要跑一次看看 都沒做就用想像力跟別人揮一樓的做法就已經符合你要的東西了 你在二樓卻跟別人說差很多????就算你後來補充一堆話也只代表一開始原文敘述很爛而已 你還是不該那樣回好心幫你的一樓
作者: tkdmaf (皮皮快跑)   2016-01-10 18:21:00
如果你是付費發問就算了,但你不是……這種情形下還要要求別人態度如何如何我才真是醉了~~有疑問你可以提,但沒資格質疑別人的「態度」除非你付相應價值的錢,那別人就會好聲好氣的回應你。多少人都不明白自己明明就是無償跟對方要求東西……還在那以為別人對你的好該是理所當然???
作者: vi000246 (Vi)   2016-01-11 23:24:00
一樓做法的問題是如果以後要擴充條件的話要寫兩次我覺得你問問題的技巧還要加強類似的問題我也問過https://goo.gl/auJTTh我會把範例程式碼 跟解題的思路、期望的結果寫出來像你是問符合範例的做法 當然板友就給你符合的表達式了
作者: shinmeteor (shin)   2016-01-14 09:13:00
這年頭裝傻的人最厲害。給正解還在那邊五四三。你最厲害好不好。我也沒有嗆人唷。呵呵。奇文共賞。
作者: xxxzzz (...)   2016-01-19 23:23:00
這邊老人的語氣就是這種格調,微帶點氣、微帶點酸....你只要記得別戳破那種感覺你這邊真正的敗筆,是謙卑的想弄清楚老人為什麼莫名生氣因為戳破了....就會..大家都懂...老人面子要顧...原PO2樓用詞語氣表情符號,我初看的解讀就是原PO後來解釋的居然能惹怒這麼多人,讓我忍不住出來提點原PO求知慾望對原PO你能力很幫助(繼續保持)但要問更深入前,最好能去確定對方有此雅量真心想教人、不怕麻煩、不怕被問倒(互相漏氣求進步)如果有人叫你不管好壞都要照單全收的那個人是在害你,如果哪天倒楣學到錯誤的觀念呢?推文讓我想起,以前看到推文某人的應徵履歷,感覺怪怪略過幸好當時直接略過,果真省了點時間對了,以上不是說全部老人,有些老人是真的有心回覆解惑想這邊也是有幾個感覺是真的為了幫你解決問題的像這篇
作者: tkdmaf (皮皮快跑)   2016-01-20 12:06:00
誰才是真的在害人呢?誰才是真的在幫人呢?真正的敗筆,是把問題發洩到別人的態度上了。而不是持續追求問題的本質。能夠誤解「照單全收」的意思然後來一長串推文我也是醉了…而且還是在本板查無文章的人在說道理………一整個怪
作者: shinmeteor (shin)   2016-01-20 13:47:00
有夠無聊。樓上幾位到底有啥好吵。好像小朋友一樣一定要吵到有個輸贏。
作者: tkdmaf (皮皮快跑)   2016-01-20 14:08:00
樓上息怒XD……雖然我蠻好奇某x說的應徵履歷是誰的………(當然不可能是我我最後一次應徵工作已經是2007年了
作者: gpmm (銀色)   2016-01-22 00:52:00
我也覺得原 po 的表達讓人不太喜歡 XDDD
作者: tkdmaf (皮皮快跑)   2016-01-22 03:14:00
那就請版主教大家如何完成一個正規表達……問題及說謝謝的方法XD

Links booklink

Contact Us: admin [ a t ] ucptt.com