我在试图弄清楚如何解析从用户那里收集的信息时遇到了一些麻烦。我正在收集的信息是:
- 年龄
- 性别
- 邮政编码
以下是我如何从用户那里收到此信息的一些示例:
- 30男90250
- 30/月/90250
- 30 米 90250
- 米 30 90250
- 30-M-90250
- 90250,M,30
我从explode 函数开始,但留下了一个巨大的if else 语句列表,试图查看用户如何分隔信息(是空格、逗号、斜线还是连字符)
任何反馈表示赞赏。
谢谢
我在试图弄清楚如何解析从用户那里收集的信息时遇到了一些麻烦。我正在收集的信息是:
以下是我如何从用户那里收到此信息的一些示例:
我从explode 函数开始,但留下了一个巨大的if else 语句列表,试图查看用户如何分隔信息(是空格、逗号、斜线还是连字符)
任何反馈表示赞赏。
谢谢
这很容易。邮政编码总是 5 位数字,所以简单的正则表达式匹配/\d{5}/
就可以了。年龄是一个 1 到 3 位的数字,所以请/\d{1,3}/
注意这一点。至于性别,你可以只寻找一个f
for female
,如果没有假设male
。
尽管如此,单独的输入字段有什么问题?
您可能需要使用一些正则表达式:
[^\d]\d{5}[^\d]
[^\d]\d{2}[^\d]
[a-zA-Z]
[编辑]
我已经编辑了正则表达式。它们现在匹配所有提供的替代方案,并且不需要对输入字符串进行任何更改(这使其成为更有效的选择)。它们也可以按任何顺序运行。