Php 用正则表达式确定字符串的结构

Php 用正则表达式确定字符串的结构,php,regex,Php,Regex,我试着用正则表达式获取字符串的结构(然后用该结构随机生成一个相同结构的字符串),但我很难理解的是结构识别 输入字符串本质上是一个掩码,可以是任意数量的as或0s,表示该字符应分别是生成字符串中的字母或数字 例如,输入字符串可以如下所示: aaa000 00aaaa0 aa00a0aa 0a0a0a aaaaa0 0aaaaa 000000 aaaaaa 理想情况下,我希望有一个正则表达式,它可以为我提供(第一个示例)/\w{3}\d{3}/,然后我可以使用它生成一个新字符串。我对这一代人没什么

我试着用正则表达式获取字符串的结构(然后用该结构随机生成一个相同结构的字符串),但我很难理解的是结构识别

输入字符串本质上是一个掩码,可以是任意数量的
a
s或
0
s,表示该字符应分别是生成字符串中的字母或数字

例如,输入字符串可以如下所示:

aaa000
00aaaa0
aa00a0aa
0a0a0a
aaaaa0
0aaaaa
000000
aaaaaa
理想情况下,我希望有一个正则表达式,它可以为我提供(第一个示例)
/\w{3}\d{3}/
,然后我可以使用它生成一个新字符串。我对这一代人没什么问题,只是发现而已

任何包含
a
0
以外的字符的字符串都不应匹配


我对学习正则表达式还很陌生,老实说,我不知道从哪里开始。解决这个问题的最佳方法是什么?

我不知道生成算法是如何工作的,但它是否应该能够处理这个问题:

str_replace(['a', '0'], ['\\w', '\\d'], $str); // aaa000 -> \w\w\w\d\d\d

(还要记住,
\w
也与数字匹配。)

好主意!我没有想到这一点,显然读得太深了。谢谢你提醒我关于
\w
,我不知道。
/D
是否最适合用于字母?@AlexGodbehere
\w
匹配
\D
,因此最好明确使用
[a-z]