我正在努力通过SQL(postgres)找到一种方法。
我想创建一个条件,在“@”和“。”之间查找模式。在电子邮件上,但仅当它包含5个字母时。例如,对于电子邮件地址'user@domain.com',因为单词域位于正确的位置,并且包含5个字母,我希望在结果中看到该电子邮件地址。这些字母可以是任何外壳,但只能是没有数字,连字符等的字母。
我过去曾经用过这个来专注于“@”之后的任何事情,但是在指示它只在“。”之前只找了5个字母是不成功的。
String[] bookshelf = new String[1000];
//METHODS
public void addBook()
{
Scanner scan = new Scanner (System.in);
System.out.println("Enter shelf number which you want to add book: " );
int a = scan.nextInt();
if (bookshelf[a-1]==null)
{
System.out.print("Enter book's name which you want to add: ");
bookshelf[a-1] = scan.nextLine();
System.out.println(bookshelf[a-1] + " added to shelf " + a + " successfully");
}
else
{
System.out.println("This shelf full already");
}
}
非常感谢任何帮助!
答案 0 :(得分:1)
你可以使用正则表达式:
select *
from your_table
where email ~ '@[^.]{5}\.[^.]*'
正则表达式表示:@
后跟5个字符,不是.
后跟.
,后跟任意数量的字符