Re: [問題] java instance name

作者: Peruheru (還在想)   2014-09-25 10:19:44
※ 引述《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)
應該就是這樣吧...其實我也不是很熟,自己剛剛試這樣應該是吻合的

Links booklink

Contact Us: admin [ a t ] ucptt.com