Reg Ex验证和提取文本

本文关键字:提取 取文本 验证 Ex Reg | 更新日期: 2023-09-27 18:13:17

我正在玩一个SMS服务,允许客户给我们发短信,他们发送的部分文本将包含国民保险号码,价值和日期。

所以我需要试着尽可能聪明地处理格式

例如,如果某人发送(以格式)

"QQ123456A 500 4/oct"或者

"QQ123456A 500.00 24/oct"或者

"QQ123456A 500.00 24/oct/14"或者

"QQ123456A 500.00 24/10/14"或者

"QQ123456A 500.00 24-oct-14"或者

"QQ123456A 500.00 24oct14"

我如何提取这个并尽可能多地验证格式,示例将是伟大的

Reg Ex验证和提取文本

伪代码

按空格分隔

NI号^'s*([a-zA-Z]){2}'s*([0-9]){1}'s*([0-9]){1}'s*([0-9]){1}'s*([0-9]){1}'s*([0-9]){1}'s*([0-9]){1}'s*([a-zA-Z]){1}?$的正则表达式(未测试)

数字-我假设这是一个付款,所以它只能是一个数字,一个小数或逗号(5,000.00),可能后面有一个£符号-这样很容易测试。

日期-没有快速的方法-我可能会做一些测试-它是否包含-或/.

是否包含oct, nov等

根据通过的测试,相应地解析日期

您可以检查您是否匹配了NI号和成本-如果您匹配了,那么您可以在剩余的值上使用.format()。(或者其他什么-自从使用c#以来已经很长时间了-只是格式化到日期-如果不解析则返回false)

然后运行检查,确保没有部件返回false。

这应该是相当健壮的