我正在寻找一个RegEx,它捕获由字符串模式包围的一系列数字,并填充一系列数字,前导零到4位数。同时,应从整个字符串中删除所有空格。 一些例子: “F12b”应捕获“12”并返回“F0012b” “AB 214/3”应捕获“214”并返回“AB0214 / 3” “G0124”应捕获“0124”并返回原始字符串
源字符串应符合以下规则: - 应该以[a-zA-Z]开头 - 上述模式后可以是任意数量的可选空格 - 数字序列后面可以跟另一个字符串 - 数字序列可以是任意数量的数字。只有少于4位的序列才能用前导零填充,否则它保持不变。 - 我只对字符串中的第一个出现感兴趣
我在这里发布这个问题是因为我不经常使用RegEx来解决这个问题,但我知道它是RegEx的完美案例。 非常感谢任何帮助,对表达的解释肯定会帮助我理解它。
答案 0 :(得分:2)
要匹配并提取您想要的信息,正则表达式很好,您可以使用:
^([a-zA-Z]+)\s*(\d+)(.*)
见here on regexr。您只会在第二个示例中看到该空格已被删除,但所有需要的信息都会在$1
,$2
和$3
正则表达式是匹配模式的工具。在替换方法中使用该模式以及如何构建替换字符串完全取决于语言,与正则表达式无关。在不知道语言的情况下,这部分无法回答。