正则表达式求助:特定长度字符串的指定位置字符匹配与替换
正则表达式解决方案
匹配规则拆解
你需要的正则需满足以下核心条件:
- 字符串总长度严格为19位
- 前10位必须是数字
- 第11位固定为字符
1 - 第12至19位(共8位)为字母或数字
匹配正则表达式
直接用这个正则可精准匹配符合要求的字符串:
^(\d{10})1([A-Za-z0-9]{8})$
^和$确保字符串从头到尾完全匹配,避免部分匹配(\d{10})捕获前10位数字,作为第一个分组1匹配第11位的固定字符([A-Za-z0-9]{8})捕获第12到19位的字母数字,作为第二个分组
替换方案
替换时通过捕获组保留前后内容,仅替换第11位,替换模式为:
$1I$2
$1引用第一个捕获组的前10位数字I替换原本的第11位1$2引用第二个捕获组的后8位字母数字
示例验证
输入字符串 12345678901abcdefgh,替换后会变成 1234567890Iabcdefgh,完全符合需求。
内容的提问来源于stack exchange,提问作者SciFiGuy Virginia
相关产品推荐
相关产品推荐

