close
簡訊內容要是太長,可以分兩則甚至多則簡訊發送,但是中間要是有斷字就不好看了,比如Ho在第一則簡訊最後,llo跑到第二則簡訊開頭。這解決原本不難,這時又有一個需求如:(1)1包/100元(2)6包/500元(3)10包/800元。若第一則簡訊切成最後是:(1)1包/100元(2)6;第二則簡訊卻是:包/500元(3)10包/800元。也不好看。除了斷空白字,還要斷左括號,可是空白字和左括號都要保留在簡訊內容。這時Regex的(?=)語法可以派上用場:
String[] sa = msg.split("(?= |\\()");
如此,假設msg為:Please Select:(1)1包/100元(2)6包/500元(3)10包/800元 to purchase。sa被分割的依序是
Please
Select:
(1)1包/100元
(2)6包/500元
(3)10包/800元
to
purchase
透過?=在split時,也把分割字符空白和左括號也寫進去。上述的例子中,Select:、to和purchase前面都多一個空白。?=在Regex的lookaround用法之一。
全站熱搜