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用法之一。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Jemmy 的頭像
    Jemmy

    Jemmy Walker

    Jemmy 發表在 痞客邦 留言(0) 人氣()