Re: [問題] java instance name
看板RegExp (正規表示式 Regular Expression)作者Peruheru (還在想)時間10年前 (2014/09/25 10:19)推噓0(0推 0噓 0→)留言0則, 0人參與討論串2/3 (看更多)
※ 引述《cashlalala (快來跟我做朋友)》之銘言:
: 各位大大好,
: 我想要用regex來匹配 java instance 的 name
: 像是
: java.temp.test@12434
: org.apache.a@3235
: abc@3546
: 然後我自己測試了一下 ^\w[.[\w]+]*@[\d]+$
^ ^
中括弧包住中括弧的話,裡面的那兩個左右中括弧似乎會被當作純粹的字元看待
另外因為[]符號包住的字語意是「從[]內取出任何一個字」
所以並不能保證 . 符號一定在 \w 字元之前
也因此 ........@ 的情況也會被當成合法
: 正常的case都會匹配, 但是某些錯誤的case也會被匹配到
: 像是
: abc.test........@46564
: 請問我該怎麼改呢?
: 請各位大大指教 感謝!
我自己是改成這樣啦
^\w+(\.\w+)*@\d+$
前後都一樣,只有把原本中括弧的部分抽掉
*****
修改:\d不用中括弧包住意思也一樣
*****
因為我覺得中間那部分你應該是用不到中括弧
我認為你要的其實不是 「 . 或 \w 」
而是 「 . 後面接著 \w 」的情況
然後用括弧包住後面加上*表示這種組合允許完全沒有 (abc@3546)
但是如果要有就一定要是上面的規則 (org.apache.a@3235 或 org.apache@3235)
應該就是這樣吧...其實我也不是很熟,自己剛剛試這樣應該是吻合的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.18.8
※ 文章網址: http://www.ptt.cc/bbs/RegExp/M.1411611587.A.689.html
※ 編輯: Peruheru (220.134.18.8), 09/25/2014 10:30:01
討論串 (同標題文章)
RegExp 近期熱門文章
PTT數位生活區 即時熱門文章