我有以下正则表达式从网址中提取域名:"^(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组中输入一个数字,它会削减域名的最后一个字符。
答案 0 :(得分:2)
您需要转义点字符
"^(http:\\/\\/|https:\\/\\/)?(www\\.)?([a-zA-Z0-9]+)\\.[a-zA-Z0-9]*\\.[a-z]{3}\\.?([a-zA-Z0-9]+)?$"
它是正则表达式中的一个特殊字符,表示"任何字符",这意味着它匹配点或任何字母。