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

时间:2018-10-28 12:27:51

标签: php regex

我正在尝试使用正则表达式来获取字符串的结构(然后使用该结构随机生成具有相同结构的字符串),但这是我在努力理解的结构标识。

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

例如,输入字符串可以是以下内容:

aaa000
00aaaa0
aa00a0aa
0a0a0a
aaaaa0
0aaaaa
000000
aaaaaa

理想情况下,我想使用一个正则表达式来给我(第一个示例)/\w{3}\d{3}/,然后可以使用它生成一个新字符串。我没有麻烦的一代,只是检测。

包含a0以外的任何其他字符的字符串都不应匹配。

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

1 个答案:

答案 0 :(得分:2)

我不知道您的生成算法如何工作,但不应该能够处理此问题:

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

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