鸿蒙NEXT开发正则工具类RegexUtil(ArkTs)

import { FormatUtil } from './FormatUtil';/*** 正则工具类* @author CSDN-鸿蒙布道师* @since 2025/04/27*/
export class RegexUtil {/*** 英文字母、数字和下划线*/static readonly REG_GENERAL = "^\\w+$";/*** 数字*/static readonly REG_NUMBERS = "^\\d+$";/*** 字母*/static readonly REG_WORD = "^[a-zA-Z]+$";/*** 单个中文汉字* 参考维基百科汉字 Unicode 范围 (https://zh.wikipedia.org/wiki/%E6%B1%89%E5%AD%97)*/static readonly REG_CHINESE ="^[\u2E80-\u2EFF\u2F00-\u2FDF\u31C0-\u31EF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF\uD840\uDC00-\uD869\uDEDF\uD869\uDF00-\uD86D\uDF3F\uD86D\uDF40-\uD86E\uDC1F\uD86E\uDC20-\uD873\uDEAF\uD87E\uDC00-\uD87E\uDE1F]$";/*** 中文汉字(一个或多个)*/static readonly REG_CHINESES = `${RegexUtil.REG_CHINESE}+`;/*** 分组匹配变量*/static readonly REG_GROUP_VAR = "^\\$(\\d+)$";/*** IPv4 地址*/static readonly REG_IPV4 ="^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)$";/*** IPv6 地址*/static readonly REG_IPV6 ="^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))$";/*** 货币金额*/static readonly REG_MONEY = "^(\\d+(?:\\.\\d+)?)$";/*** 邮件地址,符合 RFC 5322 规范* 来源:http://emailregex.com/*/static readonly REG_EMAIL ="^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)])$";/*** 移动电话号码(中国大陆)*/static readonly REG_MOBILE = "^(?:0|86|\\+86)?1[3-9]\\d{9}$";/*** 中国香港移动电话号码*/static readonly REG_MOBILE_HK = "^(?:0|852|\\+852)?\\d{8}$";/*** 中国台湾移动电话号码*/static readonly REG_MOBILE_TW = "^(?:0|886|\\+886)?(?:|-)09\\d{8}$";/*** 中国澳门移动电话号码*/static readonly REG_MOBILE_MO = "^(?:0|853|\\+853)?(?:|-)6\\d{7}$";/*** 座机号码*/static readonly REG_TEL = "^(010|02\\d|0[3-9]\\d{2})-?(\\d{6,8})$";/*** 座机号码 + 400/800 电话*/static readonly REG_TEL_400_800 ="^0\\d{2,3}[\\- ]?[1-9]\\d{6,7}|[48]00[\\- ]?[1-9]\\d{6}$";/*** 18 位身份证号码*/static readonly REG_CITIZEN_ID ="^[1-9]\\d{5}[1-2]\\d{3}((0\\d)|(1[0-2]))(([012]\\d)|3[0-1])\\d{3}(\\d|X|x)$";/*** 邮编(兼容港澳台)*/static readonly REG_ZIP_CODE ="^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[0-7]|6[0-7]|7[0-5]|8[0-9]|9[0-8])\\d{4}|99907[78]$";/*** 生日*/static readonly REG_BIRTHDAY ="^(\\d{2,4})([/\\-.年]?)(\\d{1,2})([/\\-.月]?)(\\d{1,2})日?$";/*** URI* 定义见:https://www.ietf.org/rfc/rfc3986.html#appendix-B*/static readonly REG_URI ="^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$";/*** URL*/static readonly REG_URL ="^[a-zA-Z]+://[\\w-+&@#/%?=~_|!:,.;]*[\\w-+&@#/%=~_|]$";/*** HTTP URL(支持 FTP、File 等协议)*/static readonly REG_URL_HTTP ="^(https?|ftp|file)://[\\w-+&@#/%?=~_|!:,.;]*[\\w-+&@#/%=~_|]$";/*** 中文字、英文字母、数字和下划线*/static readonly REG_GENERAL_WITH_CHINESE = "^[\u4E00-\u9FFF\\w]+$";/*** UUID*/static readonly REG_UUID ="^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$";/*** 不带横线的 UUID*/static readonly REG_UUID_SIMPLE = "^[0-9a-fA-F]{32}$";/*** MAC 地址*/static readonly REG_MAC_ADDRESS ="^((?:[a-fA-F0-9]{1,2}[:-]){5}[a-fA-F0-9]{1,2})|0x(\\d{12}).+ETHER$";/*** 16 进制字符串*/static readonly REG_HEX = "^[a-fA-F0-9]+$";/*** 时间格式*/static readonly REG_TIME = "^\\d{1,2}:\\d{1,2}(:\\d{1,2})?$";/*** 中国车牌号码(兼容新能源车牌)*/static readonly REG_PLATE_NUMBER ="^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[ABCDEFGHJK])|([ABCDEFGHJK]([A-HJ-NP-Z0-9])[0-9]{4})))|" +"([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]\\d{3}\\d{1,3}[领])|" +"([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$";/*** 社会统一信用代码*/static readonly REG_CREDIT_CODE ="^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$";/*** 车架号(车辆识别代号)*/static readonly REG_CAR_VIN ="^[A-HJ-NPR-Z0-9]{8}[0-9X][A-HJ-NPR-Z0-9]{2}\\d{6}$";/*** 驾驶证档案编号(中国驾驶证档案编号)*/static readonly REG_CAR_DRIVING_LICENCE = "^[0-9]{12}$";/*** 中文姓名*/static readonly REG_CHINESE_NAME = "^[\u2E80-\u9FFF·]{2,60}$";/*** 匹配表情符号(包括单个和组合表情)*/static readonly REG_EMOJI ="(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])";/*** 判断内容是否匹配指定正则* @param content 待验证的内容* @param pattern 正则表达式* @returns 是否匹配*/private static isMatch(content: string | null | undefined, pattern: string): boolean {if (!content) return false;const regex = new RegExp(pattern);return regex.test(content);}/*** 判断邮箱格式是否正确* @param content 邮箱地址* @returns 是否匹配*/static isEmail(content: string): boolean {return RegexUtil.isMatch(content, RegexUtil.REG_EMAIL);}/*** 判断是否包含表情符号* @param content 待验证的内容* @returns 是否包含表情*/static containsEmoji(content: string): boolean {return RegexUtil.isMatch(content, RegexUtil.REG_EMOJI);}/*** 判断电话号码格式是否正确* @param phone 电话号码* @returns 是否匹配*/static isPhone(phone: string): boolean {return FormatUtil.isPhone(phone);}
}
代码如下:

import { FormatUtil } from './FormatUtil';/*** 正则工具类* @author CSDN-鸿蒙布道师* @since 2025/04/27*/
export class RegexUtil {/*** 英文字母、数字和下划线*/static readonly REG_GENERAL = "^\\w+$";/*** 数字*/static readonly REG_NUMBERS = "^\\d+$";/*** 字母*/static readonly REG_WORD = "^[a-zA-Z]+$";/*** 单个中文汉字* 参考维基百科汉字 Unicode 范围 (https://zh.wikipedia.org/wiki/%E6%B1%89%E5%AD%97)*/static readonly REG_CHINESE ="^[\u2E80-\u2EFF\u2F00-\u2FDF\u31C0-\u31EF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF\uD840\uDC00-\uD869\uDEDF\uD869\uDF00-\uD86D\uDF3F\uD86D\uDF40-\uD86E\uDC1F\uD86E\uDC20-\uD873\uDEAF\uD87E\uDC00-\uD87E\uDE1F]$";/*** 中文汉字(一个或多个)*/static readonly REG_CHINESES = `${RegexUtil.REG_CHINESE}+`;/*** 分组匹配变量*/static readonly REG_GROUP_VAR = "^\\$(\\d+)$";/*** IPv4 地址*/static readonly REG_IPV4 ="^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)$";/*** IPv6 地址*/static readonly REG_IPV6 ="^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))$";/*** 货币金额*/static readonly REG_MONEY = "^(\\d+(?:\\.\\d+)?)$";/*** 邮件地址,符合 RFC 5322 规范* 来源:http://emailregex.com/*/static readonly REG_EMAIL ="^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)])$";/*** 移动电话号码(中国大陆)*/static readonly REG_MOBILE = "^(?:0|86|\\+86)?1[3-9]\\d{9}$";/*** 中国香港移动电话号码*/static readonly REG_MOBILE_HK = "^(?:0|852|\\+852)?\\d{8}$";/*** 中国台湾移动电话号码*/static readonly REG_MOBILE_TW = "^(?:0|886|\\+886)?(?:|-)09\\d{8}$";/*** 中国澳门移动电话号码*/static readonly REG_MOBILE_MO = "^(?:0|853|\\+853)?(?:|-)6\\d{7}$";/*** 座机号码*/static readonly REG_TEL = "^(010|02\\d|0[3-9]\\d{2})-?(\\d{6,8})$";/*** 座机号码 + 400/800 电话*/static readonly REG_TEL_400_800 ="^0\\d{2,3}[\\- ]?[1-9]\\d{6,7}|[48]00[\\- ]?[1-9]\\d{6}$";/*** 18 位身份证号码*/static readonly REG_CITIZEN_ID ="^[1-9]\\d{5}[1-2]\\d{3}((0\\d)|(1[0-2]))(([012]\\d)|3[0-1])\\d{3}(\\d|X|x)$";/*** 邮编(兼容港澳台)*/static readonly REG_ZIP_CODE ="^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[0-7]|6[0-7]|7[0-5]|8[0-9]|9[0-8])\\d{4}|99907[78]$";/*** 生日*/static readonly REG_BIRTHDAY ="^(\\d{2,4})([/\\-.年]?)(\\d{1,2})([/\\-.月]?)(\\d{1,2})日?$";/*** URI* 定义见:https://www.ietf.org/rfc/rfc3986.html#appendix-B*/static readonly REG_URI ="^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$";/*** URL*/static readonly REG_URL ="^[a-zA-Z]+://[\\w-+&@#/%?=~_|!:,.;]*[\\w-+&@#/%=~_|]$";/*** HTTP URL(支持 FTP、File 等协议)*/static readonly REG_URL_HTTP ="^(https?|ftp|file)://[\\w-+&@#/%?=~_|!:,.;]*[\\w-+&@#/%=~_|]$";/*** 中文字、英文字母、数字和下划线*/static readonly REG_GENERAL_WITH_CHINESE = "^[\u4E00-\u9FFF\\w]+$";/*** UUID*/static readonly REG_UUID ="^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$";/*** 不带横线的 UUID*/static readonly REG_UUID_SIMPLE = "^[0-9a-fA-F]{32}$";/*** MAC 地址*/static readonly REG_MAC_ADDRESS ="^((?:[a-fA-F0-9]{1,2}[:-]){5}[a-fA-F0-9]{1,2})|0x(\\d{12}).+ETHER$";/*** 16 进制字符串*/static readonly REG_HEX = "^[a-fA-F0-9]+$";/*** 时间格式*/static readonly REG_TIME = "^\\d{1,2}:\\d{1,2}(:\\d{1,2})?$";/*** 中国车牌号码(兼容新能源车牌)*/static readonly REG_PLATE_NUMBER ="^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[ABCDEFGHJK])|([ABCDEFGHJK]([A-HJ-NP-Z0-9])[0-9]{4})))|" +"([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]\\d{3}\\d{1,3}[领])|" +"([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$";/*** 社会统一信用代码*/static readonly REG_CREDIT_CODE ="^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$";/*** 车架号(车辆识别代号)*/static readonly REG_CAR_VIN ="^[A-HJ-NPR-Z0-9]{8}[0-9X][A-HJ-NPR-Z0-9]{2}\\d{6}$";/*** 驾驶证档案编号(中国驾驶证档案编号)*/static readonly REG_CAR_DRIVING_LICENCE = "^[0-9]{12}$";/*** 中文姓名*/static readonly REG_CHINESE_NAME = "^[\u2E80-\u9FFF·]{2,60}$";/*** 匹配表情符号(包括单个和组合表情)*/static readonly REG_EMOJI ="(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])";/*** 判断内容是否匹配指定正则* @param content 待验证的内容* @param pattern 正则表达式* @returns 是否匹配*/private static isMatch(content: string | null | undefined, pattern: string): boolean {if (!content) return false;const regex = new RegExp(pattern);return regex.test(content);}/*** 判断邮箱格式是否正确* @param content 邮箱地址* @returns 是否匹配*/static isEmail(content: string): boolean {return RegexUtil.isMatch(content, RegexUtil.REG_EMAIL);}/*** 判断是否包含表情符号* @param content 待验证的内容* @returns 是否包含表情*/static containsEmoji(content: string): boolean {return RegexUtil.isMatch(content, RegexUtil.REG_EMOJI);}/*** 判断电话号码格式是否正确* @param phone 电话号码* @returns 是否匹配*/static isPhone(phone: string): boolean {return FormatUtil.isPhone(phone);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/80813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring系列六:JdbcTemplate

JdbcTemplate 🦒看一个实际需求🦒官方文档🦒基本介绍🦒使用实例📕需求说明📕代码演示 🦒看一个实际需求 实际需求: 如果程序员就希望使用spring框架来做项目, spring框架如何处理对数据库的操作…

来聊聊JVM中安全点的概念

文章目录 写在文章开头详解safepoint基本概念什么是安全点?为什么需要安全点JVM如何让线程跑到最近的安全点线程什么时候需要进入安全点JVM如何保证线程高效进入安全点如何设置安全点用一次GC解释基于安全点的STW实践-基于主线程休眠了解安全点的工作过程代码示例基于日志印证…

搭建 Spark YARN 模式集群指南

在大数据处理领域,Apache Spark 凭借其卓越的性能和易用性广受青睐。而 YARN(Yet Another Resource Negotiator)作为 Hadoop 的资源管理框架,能高效管理集群资源。将 Spark 与 YARN 结合,以 YARN 模式搭建集群&#xf…

WPF之Label控件详解

文章目录 1. 引言2. Label控件基础2.1 类继承结构2.2 Label类定义 3. Label控件的核心属性3.1 Content属性3.2 Target属性3.3 其他常用属性 4. 标签样式与模板自定义4.1 简单样式设置4.2 使用Style对象4.3 触发器使用4.4 使用ControlTemplate完全自定义 5. Label与表单控件交互…

一种改进的YOLOv11网络,用于无人机视角下的小目标检测

大家读完觉得有帮助记得关注和点赞!!! 摘要 随着无人机(UAV)和计算机视觉技术的快速发展,从无人机视角进行目标检测已成为一个重要的研究领域。然而,无人机图像中目标像素占比极小、物体尺度变…

Adobe Lightroom Classic v14.3.0.8 一款专业的数字摄影后期处理软件

软件介绍 Adobe Lightroom Classic 2025中文激活版(Adobe桌面照片编辑软件)LRC2025(LR2025本地离线版)是一款桌面照片编辑器和相册管理软件的raw格式编辑软件,支持各种RAW图像相机配置,HDR全景照片&#x…

【Statsmodels和SciPy介绍与常用方法】

Statsmodels库介绍与常用方法 Statsmodels 是一个强大的 Python 库,专注于统计建模和数据分析,广泛应用于经济学、金融、生物统计等领域。它提供了丰富的统计模型、假设检验和数据探索工具,适合进行回归分析、时间序列分析等任务。本文将介绍…

【Rust通用集合类型】Rust向量Vector、String、HashMap原理解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

SoapUi测试1——REST(WebAPi、Json协议/HTTP、Post通讯方式)接口测试

文章目录 1背景1.1接口测试工具SoapUi产生背景1.2常见接口类型1.3接口包含内容1.4请求格式 2软件使用3http、webservice、webapi如何测试3.1REST(WebAPi、JSON/HTTP、POST)3.2SOAP(Webserver、XML/HTTP、POST) 1背景 1.1接口测试…

Linux按键驱动测试

文章目录 一、设备节点添加 二、创建驱动文件代码 2.1 核心数据结构 2.2 按键值定义 2.3 关键函数实现 三、创建测试文件 四、测试 一、设备节点添加 首先在设备树文件中添加pinctrl以及在根目录下添加设备节点。如下: //创建按键输入的pinctrlpinctrl_key: keygrp…

5000元可以运行32B大模型的笔记本

5000元可以运行32B 大模型的笔记本 荣耀笔记本 X14 Plus 锐龙版 R7-8845HS -32G -1T 模型名称 模型大小 tokens/s qwq-32b-q4 19GB 2.4 Qwen2.5-Coder-14B- Q8 16GB 4 DeepSeek-R1-Distill-Qwen-7B-Q8 8GB 8.1 DeepSeek-R1-Distill-Llama-8B-Q4 5GB 11.7

arm设备树基础知识

文章目录 前言dts片段通用属性介绍地址大小中断phandlecompatible mmc节点介绍 前言 arm开发&#xff0c;早晚要了解设备树 dts片段 interrupt-parent <0x8005>; model "linux,dummy-virt"; #size-cells <0x02>; #address-cells <0x02>; co…

【C++ 核心知识点面试攻略:从基础到实战(上位机开发视角)】

一、命名空间&#xff08;Namespace&#xff09;相关问题 问题1&#xff1a;C引入命名空间的核心目的是什么&#xff1f;如何通过命名空间解决命名冲突&#xff1f; 答案&#xff1a; C引入命名空间的核心目的是 避免全局作用域中的命名冲突&#xff0c;通过将变量、函数、类…

线性代数与数据学习

The Functions of Deep Learning (essay from SIAM News, December 2018) Deep Learning and Neural Nets

phpstorm用php连接数据库报错

项目场景&#xff1a; phpstorm用php连接数据库 问题描述 用php使用mysql_connect 的时候报错了&#xff0c;没有这个函数 原因分析&#xff1a; php解释器问题&#xff0c;后来查资料得知mysql_connct只适用于php5.5以下解释器。一开始用的7&#xff0c;改成5.3以后还是报…

51c大模型~合集122

我自己的原文哦~ https://blog.51cto.com/whaosoft/13877107 #PHYBench 北大物院200人合作&#xff0c;金牌得主超50人&#xff01;PHYBench&#xff1a;大模型究竟能不能真的懂物理&#xff1f; 本项目由北京大学物理学院朱华星老师、曹庆宏副院长统筹指导。基准设计、…

单片机 + 图像处理芯片 + TFT彩屏 触摸滑动条控件

触摸滑动条控件使用说明 一、项目概述 本项目基于单片机和RA8889/RA6809图形处理芯片的TFT触摸屏滑动条控件。该控件支持水平和垂直滑动条&#xff0c;可自定义外观和行为&#xff0c;并支持回调函数进行值变化通知。 硬件平台&#xff1a;51/ARM均可(测试时使用STC8H8K64U单…

linux离线安装zsh

下载zsh 下载仓库后解压 下载地址&#xff1a;https://github.com/zsh-users/zsh 离线安装 安装方法见INSTALL文件 ./configure --prefix[/usr/local] make make install

机器学习中的数据转换:关键步骤与最佳实践

机器学习中的数据转换&#xff1a;关键步骤与最佳实践 摘要 &#xff1a;在机器学习领域&#xff0c;数据是模型的核心&#xff0c;而数据的转换是构建高效、准确模型的关键步骤之一。本文深入探讨了机器学习中数据转换的重要性、常见的数据类型及其转换方法&#xff0c;以及在…

TDR阻抗会爬坡? 别担心,不是你的错,你只是不够了解TDR!

在背板系统或任何长走线设计里&#xff0c;你大概都碰过这画面&#xff1a; TDR 曲线一开始乖乖在 92 Ω&#xff0c;但越往末端、阻抗越爬越高&#xff0c;来到最高 97 Ω&#xff0c;心里瞬间凉半截 &#x1f612; &#xff0c;「难不成... 板厂又翻车了吗&#xff1f;」 然…