我正在尝试使用正则表达式来获取字符串的结构(然后使用该结构随机生成具有相同结构的字符串),但这是我在努力理解的结构标识。
输入字符串本质上是一个掩码,可以是任意数量的a
或0
s,表示该字符在生成的字符串中应分别为字母或数字。
例如,输入字符串可以是以下内容:
aaa000
00aaaa0
aa00a0aa
0a0a0a
aaaaa0
0aaaaa
000000
aaaaaa
理想情况下,我想使用一个正则表达式来给我(第一个示例)/\w{3}\d{3}/
,然后可以使用它生成一个新字符串。我没有麻烦的一代,只是检测。
包含a
或0
以外的任何其他字符的字符串都不应匹配。
我对学习正则表达式非常陌生,老实说,我不知道从哪里开始。解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
我不知道您的生成算法如何工作,但不应该能够处理此问题:
str_replace(['a', '0'], ['\\w', '\\d'], $str); // aaa000 -> \w\w\w\d\d\d
(还请记住,\w
也与数字匹配。)