推广正则表达式

时间:2016-12-08 23:43:16

标签: java regex

使用正则表达式

(^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$)

验证ipv4地址工作正常,但我想知道是否有可能使正则表达式适用于字符串输入,如

63.88.73.253test

其中63.88.73.253是正则表达式的组合?

1 个答案:

答案 0 :(得分:1)

选项1: 在你的正则表达式中,最后的$表示在此表达式之后不会出现任何内容。只需删除$即可^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])。另外,请确保您正在寻找事件,而不是匹配。

选项2: 假设您希望文本成为正则表达式的一部分,您可以删除$,而是添加.*,它将查找任何字符(假设您指定将空格视为普通字符) 。这将导致^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5]).*。在这里,您可以安全地寻找匹配。

注意:您在问题中使用的外括号是不必要的。第^行的开头也会阻止您在IP之前的任何空格(实际上是任何字符),这可能是您不想要的。