2

我正在寻找一个正则表达式,它捕获由字符串模式包围的一系列数字,并用前导零填充该系列数字,最多 4 位。同时,应从整个字符串中删除所有空格。一些示例:“F12b”应该捕获“12”并返回“F0012b”“AB 214/3”应该捕获“214”并返回“AB0214/3”“G0124”应该捕获“0124”并返回原字符串不变

源字符串应遵循以下规则: - 应以 [a-zA-Z] 开头 - 在上述模式之后可以是任意数量的可选空格 - 数字序列后面可以跟另一个字符串 - 数字序列可以是任何位数。只有少于 4 位的序列才用前导零填充,否则保持不变。- 我只对字符串中的第一次出现感兴趣

我在这里发布这个问题是因为我没有经常使用 RegEx 来解决这个问题,但我知道这是 RegEx 的完美案例。非常感谢任何帮助,对表达式的解释肯定会帮助我理解它。

4

1 回答 1

2

为了匹配它并提取你想要的信息,正则表达式很好,你可以使用这个:

^([a-zA-Z]+)\s*(\d+)(.*)

在 regexr 上查看。您只看到在第二个示例中该空间已被删除,但所有需要的信息都在$1,$2$3

正则表达式是匹配模式的工具。在替换方法中使用该模式以及如何构建替换字符串完全取决于语言,与正则表达式无关。在不懂语言的情况下,这部分无法回答。

于 2012-11-20T07:46:19.147 回答