Как я могу найти, если строка содержит хотя бы один символ, используя регулярное выражение? - PullRequest
5 голосов
/ 20 мая 2010

Примеры:

  1. "1 имя": должно сказать, что оно имеет символы
  2. "10 000": ОК
  3. "na123me": должно сказать, что оно имеет символы
  4. "na 123, 000": следует сказать, что в нем есть символы

Ответы [ 4 ]

11 голосов
/ 20 мая 2010
public class HasCharacters  {
    public static void main( String [] args ){
        if( args[0].matches(".*[a-zA-Z]+.*")){
            System.out.println( "Has characters ");
        } else {
            System.out.println("Ok");   
        }
    }
}

Test

$java HasCharacters "1 name" 
Has characters 
$java HasCharacters "10,000"
Ok
$java HasCharacters "na123me"
Has characters 
$java HasCharacters "na 123, 000" 
Has characters 
5 голосов
/ 20 мая 2010
 public static void main(String[] args)

 {
     Pattern p = Pattern.compile("^([^a-zA-Z]*([a-zA-Z]+)[^a-zA-Z]*)+$");
     Matcher m = p.matcher("1 name");
     Matcher m1 = p.matcher("10,000");
     Matcher m2 = p.matcher("na123me");
     Matcher m3 = p.matcher("na 123, 000");
     Matcher m4 = p.matcher("13bbbb13jdfgjd43534 fkgdfkgjk34 rktekjg i54 ");

     if (m.matches())
         System.out.println(m.group(1));

     if (m1.matches())
         System.out.println(m1.group(1));

     if(m2.matches())
         System.out.println(m2.group(1));

     if(m3.matches())
         System.out.println(m3.group(1));

     if (m4.matches())
         System.out.println(m4.group(1));
 }

Выше должно соответствовать любой букве как в нижнем, так и в верхнем регистре. Если регулярное выражение возвращает совпадение, в строке есть буква.

Результат

1 имя

я

на 123 000

I54

Заявления, которые не содержат букв, не соответствуют выражению.

2 голосов
/ 20 мая 2010

Требуемое регулярное выражение - [a-zA-Z], но вам нужно использовать метод find().

Эта страница позволит вам проверять регулярные выражения на ввод.

http://www.fileformat.info/tool/regex.htm

0 голосов
/ 20 мая 2010

С помощью этой строки вы можете проверить, содержит ли ваша строка только символы, заданные регулярным выражением (в данном случае a, b, c, ... z и A, B, C, ... Z):

boolean doesMatch = "your string".matches( "[a-zA-Z]*" );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...