我正在直接從HTML文件中解析日期,并嘗試將它們轉換為日期。但是,這樣做總是反映在錯誤中;最奇怪的部分是,如果我直接粘貼字符串,我能夠解析。layout := "02-01-2006 15:04:05"t, err := time.Parse(layout, *date)if err != nil { fmt.Println( err)}收益 率:parsing time "12-06-2021 00:00:31" as "02-01-2006 15:04:05": cannot parse " 00:00:31" as "15"但是,如果我試圖直接從字符串解析,它可以工作:layout := "02-01-2006 15:04:05"date := "12-06-2021 00:00:31"t, err := time.Parse(layout, date)if err != nil { fmt.Println( err)}工作正常。我嘗試以各種可能的方式刪除空格,但問題仍然存在:date2 := *datedate2 = strings.TrimSpace(date2)date2 = strings.TrimRight(date2, "\r\n")date2 = strings.TrimRight(date2, "\n")space := regexp.MustCompile(`\s+`)date2 = space.ReplaceAllString(date2, "")date2 = strings.ReplaceAll(date2, " ", "")date2 = strings.ReplaceAll(date2, "\r", "")date2 = strings.ReplaceAll(date2, "\n", "")這表明存在隱藏的符文。最后,我求助于在原始字符串(來自指針)和我粘貼的版本中打印實際的符文,這就是我得到的。原始字符串:0: U+0031 '1'1: U+0033 '3'2: U+002D '-'3: U+0030 '0'4: U+0037 '7'5: U+002D '-'6: U+0032 '2'7: U+0030 '0'8: U+0032 '2'9: U+0031 '1'10: U+00A012: U+0031 '1'13: U+0030 '0'14: U+003A ':'15: U+0030 '0'16: U+0030 '0'17: U+003A ':'18: U+0030 '0'19: U+0030 '0'手寫字符串:0: U+0031 '1'1: U+0032 '2'2: U+002D '-'3: U+0030 '0'4: U+0036 '6'5: U+002D '-'6: U+0032 '2'7: U+0030 '0'8: U+0032 '2'9: U+0031 '1'10: U+0020 ' '11: U+0030 '0'12: U+0030 '0'13: U+003A ':'14: U+0030 '0'15: U+0030 '0'16: U+003A ':'17: U+0033 '3'18: U+0032 '2'我們可以立即發現問題:在位置11處有一個額外的符文,但由于某種原因,它現在被顯示出來;怎么會這樣?這是什么?以及如何刪除它?
1 回答

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
U+00A0 是不間斷空格字符。它通常用于格式化為供人類使用的日期時間,以確保日期時間不會被顯示程序包裝。
您可能只想先嘗試用常規空格替換任何字符。\uA0
至于為什么正則表達式不會做任何事情,它與你的正則表達式不匹配,因為文檔說它是嚴格的\s
\s whitespace (== [\t\n\f\r ])
- 1 回答
- 0 關注
- 86 瀏覽
添加回答
舉報
0/150
提交
取消