前导零但使用冒号进行搜索。需要留下原来的号码和冒号

问题描述 投票:0回答:1

我需要能够查找后跟冒号的数字,向任何一位数字添加零,保留原始数字,并将冒号以及后面的所有文本保留在原处。

我正在使用 Google 表格工作

示例: 1:作业一 ➡ 01:作业一

如果数字是两位数或三位数(即 10:分配十或 100:分配 100),则不会添加前导零。

我已经尝试过了

我到处寻找一个简单的正则表达式解决方案,但在 Google 表格中没有发现任何对我有用的解决方案。

我不得不求助于 Google Sheet 公式来产生我想要的结果。我有一份我们的系统列出的作业列表:

1:作业一 2:作业二 ... 10:作业十 11:作业十一 ... 20:作业十 21:作业十一 ...

等等。我尝试使用 RegEXReplace 将其更改为:

01:作业一 02:作业二

因为按原样,当我尝试按作业排序时,我得到

1:作业一 10:作业十 11:作业十一 ... 2:作业二 20:作业二十 ...

因为字符串排序就是这样工作的......

非正则表达式修复

经过几天的顽固地尝试寻找正则表达式解决方案,我找到了一个简单的公式:

=数组公式(if(J3:J="","",if(右(左(J3:J,2),1)=":","0"&J3:J,J3:J)))

查看 J3:J 单元格,选取最左边的两个字符,选取最后一个字符,看看它是否是冒号 (:)。如果是冒号,则为1-9的数字,需要通过添加前导零来更改。如果它不是一列,那么它就是一个数字 <=10 and does not need to be changed. It was a simple 15 second solution, but one that I did not want to use because I am tryng to understand/learn/use regular expressions...

令我烦恼的是,我不知道如何使用正则表达式来做到这一点。我可以使用

轻松找到需要更改的数字

RegExReplace(J3:J,"^[0-9]:","但是我无法找出留下数字的替换,只是在它前面添加一个零")

有人可以帮忙吗?

google-sheets leading-zero
1个回答
0
投票

您可以尝试:

=arrayformula(regexreplace(J3:J,"^(\d:)","0$1"))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.