正则表达式失去了最后的性格

时间:2018-02-20 10:05:39

标签: java regex pattern-matching

我有以下正则表达式从网址中提取域名:"^(http:\\/\\/|https:\\/\\/)?(www.)?([a-zA-Z0-9]+).[a-zA-Z0-9]*.[a-z]{3}.?([a-zA-Z0-9]+)?$"当我获得第3组时,我得到的域名缺少其中的最后一个字符。例如:facebook成为faceboo

我正在使用Java 8

正则表达式在路径(组4)中没有任何数字的情况下正常工作。 如果我在第4组中输入一个数字,它会削减域名的最后一个字符。

1 个答案:

答案 0 :(得分:2)

您需要转义点字符

"^(http:\\/\\/|https:\\/\\/)?(www\\.)?([a-zA-Z0-9]+)\\.[a-zA-Z0-9]*\\.[a-z]{3}\\.?([a-zA-Z0-9]+)?$"

它是正则表达式中的一个特殊字符,表示"任何字符",这意味着它匹配点或任何字母。