正则表达式对我来说是最困难的。我需要Java中的正则表达式
1) 17-08-15 11.04A &AD4 USFR EN 00*
My TRY:\d[1-9]+\-\d[1-9]+\-\d[1-9]+\s+\d[1-9]\.\d[1-9]+\w+\s+&+\w+\d\s+\w+\s+\w+\s+\d+
&安培;和*>>是第一个问题,如果有更好的正则表达式,请建议。
2)17-08-15 11.04A &AD4 USER 0002******** j? j? à?&AD4N
问题>> *******和?,&,`如何将这些包含在正则表达式中。
我已经google了很多,但只有简单的正则表达式可用。这些工具生成所有常量类型正则表达式,因为它在注册表中就像
一样16\-09\-14\s+11\.04A\s+&AD4\s+USER\s+EN\s+00
它包含所有内容,因此这种正则表达式对我没用。
由于
答案 0 :(得分:1)
要搜索某些特殊字符(例如&和*),您需要将\
放在前面:\*
,\&
。
1)你的正则表达式是错误的。据我所知,第一组代表日期,所以你的正则表达式甚至可以用于这样的日期:32-99-15
。这同样适用于时间。您可以在此处查看:https://regex101.com/r/tX1iD9/2
以下是截至&17-08-15 11.04A
的日期和时间部分的正则表达式:
(0[1-9]|[12]\d|30)-(0[1-9]|1[0-2])-[0-9]{2}\s(0\d|1[1-2])\.([0-5]\d){1,2}(A|P)\s\&
它支持12小时的时间,A
或P
在最后和正确的日期,您可以在此处测试:https://regex101.com/r/mF9dQ9/3
对于整个字符串,您可以在此处找到正则表达式:https://regex101.com/r/mF9dQ9/4
2)第二个正则表达式:
(0[1-9]|[12]\d|30)-(0[1-9]|1[0-2])-[0-9]{2}\s+(0\d|1[1-2])\.([0-5]\d){1,2}(A|P)\s\&[A-Z]{2}\d\s+[A-Z]{4}\s+(\d|\*){12}\s\w\?\s\w\?\s\à\?\&\w{2}\d\w