code: func explodeSensorFilename(filename string) (ok bool, sensorType string, sensorNum int, sensorProperty string) {
  	matches := hwmonFilenameFormat.FindStringSubmatch(filename)
  	if len(matches) == 0 {
  		return false, sensorType, sensorNum, sensorProperty
  	}
  	for i, match := range hwmonFilenameFormat.SubexpNames() {
  		if i >= len(matches) {
  			return true, sensorType, sensorNum, sensorProperty
  		}
  		if match == "type" {
  			sensorType = matches[i]
  		}
  		if match == "property" {
  			sensorProperty = matches[i]
  		}
  		if match == "id" && len(matches[i]) > 0 {
  			if num, err := strconv.Atoi(matches[i]); err == nil {
  				sensorNum = num
  			} else {
  				return false, sensorType, sensorNum, sensorProperty
  			}
  		}
  	}
  	return true, sensorType, sensorNum, sensorProperty
  }
docs: // explodeSensorFilename splits a sensor name into <type><num>_<property>.