两个特定字符之间子字符串的特定长度

时间:2018-03-26 17:44:28

标签: postgresql

我正在努力通过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");
            }
        }

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

你可以使用正则表达式:

select *
from your_table
where email ~ '@[^.]{5}\.[^.]*'

正则表达式表示:@后跟5个字符,不是.后跟.,后跟任意数量的字符