@@ -36,7 +36,7 @@ var keyWeekDay = map[string]int{
3636 "这个礼拜" : 0 , "这礼拜" : 0 , "本礼拜" : 0 , "礼拜" : 0 , "下个礼拜" : 7 , "下下个礼拜" : 14 , "上个礼拜" : - 7 , "上上个礼拜" : - 14 ,
3737}
3838
39- var jiebaTimeTag = []string {"m" , "t" , "f" , "x" }
39+ var jiebaTimeTag = []string {"m" , "t" , "f" }
4040
4141// cn2dig 中文单元转化为数字
4242func cn2dig (src string ) (rsl int ) {
@@ -355,6 +355,15 @@ func TimeExtract(text string) (finalRes []string) {
355355 for _ , tag := range segments {
356356 k := tag .Token ().Text ()
357357 v := tag .Token ().Pos ()
358+ isXNum := false
359+ if v == "x" {
360+ _ , err := strconv .Atoi (k )
361+ if err != nil {
362+ isXNum = false
363+ } else {
364+ isXNum = true
365+ }
366+ }
358367 pegList = append (pegList , fmt .Sprintf ("%v/%s" , k , v ))
359368 if cpDate , exist := keyDate [k ]; exist {
360369 if word != "" {
@@ -372,7 +381,7 @@ func TimeExtract(text string) (finalRes []string) {
372381 word = strconv .Itoa (nMonth + cpMonth ) + "月"
373382 txt += k
374383 } else if word != "" {
375- if includes (jiebaTimeTag , v ) || k == ":" {
384+ if includes (jiebaTimeTag , v ) || k == ":" || isXNum {
376385 word = word + k
377386 txt += k
378387 } else {
@@ -381,7 +390,7 @@ func TimeExtract(text string) (finalRes []string) {
381390 word = ""
382391 txt = ""
383392 }
384- } else if includes (jiebaTimeTag , v ) || k == ":" {
393+ } else if includes (jiebaTimeTag , v ) || k == ":" || isXNum {
385394 word = k
386395 txt = k
387396 }
0 commit comments