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]
。