【发布时间】:2020-06-16 13:00:25
【问题描述】:
我有一个来自 JSON squirt 的键=>值对列表。我对数组进行了排序,剩下以下内容(摘录相关案例,因为它们高达 92):
dir1summary
dir10summary
dir1summarydue
dir10summarydue
directive1
directive10
directivecode1
directivecode10
我需要做的是: 1)将所有数字放在最后,然后 2) 将它们填充到 2 位数字 (01,02,&c) 所以列表最终看起来像这样:
directivesummary01
directivesummary10
directivesummarydue01
directivesummarydue10
directive01
directive10
directivecode01
directivecode10
考虑到键名明显相似,我希望用一个 REGEX 语句来做到这一点,但我迷路了。这是我到目前为止所拥有的:
dir((\d{1,2}(summary|summarydue))|((ective\d{1,2})|(ectivecode\d{1,2})))
...aaaand 我不知道下一步该做什么。如何继续前进?有没有更好的 compact 方法来做到这一点?
编辑:这也意味着我必须用“指令”替换“目录”。它隐含在结果列表中,但我没有为它制作项目符号。此外,正则表达式是我能够在RegExer 构建的所有内容。因此“失去了下一步该做什么”部分。
【问题讨论】:
-
也许regex101.com/r/OtWHmC/2 和
preg_replacecallback可以在+10 整数上修剪前导0。同样在未来共享regex101或regexer链接会更有用。
标签: php regex zero-padding