Java регулярное выражение для строки - PullRequest
3 голосов
/ 02 апреля 2012

Я хотел бы сгенерировать регулярное выражение для строки типа "S67-90". Я использовал синтаксис "String pattern =" \ w \ d \ d \ W \ d \ d "", но я хотел бы указать, что первый символ слова всегда должен начинаться с "S". Кто-нибудь может помочь мне с этим?

Мой пример кода:

                      String pattern = "\\w\\d\\d\\W\\d\\d";
                      Pattern p = Pattern.compile((pattern));
                      Matcher m = p.matcher(result);
                      if (m.find()) {
                      System.out.println("Yes!It is!");
                       }
                     else{
                     System.out.println("No!Its not  :(");
                         }

Ответы [ 4 ]

5 голосов
/ 02 апреля 2012

Просто замените сначала \\w на S в вашем шаблоне.

  String pattern = "S\\d\\d\\W\\d\\d";
3 голосов
/ 02 апреля 2012

Если вы хотите, чтобы ваш матч начинался с буквы S, вы можете сделать то же, что и выше. Однако, если вы хотите указать, что строка должна начинаться с S, вы должны сделать это: ^S\\d\\d\\W\\d\\d. Это даст команду движку регулярных выражений начинать сопоставление с самого начала. Это регулярное выражение: S\\d\\d\\W\\d\\d будет соответствовать bla bla S67-90. Это регулярное выражение: ^S\\d\\d\\W\\d\\d будет соответствовать только строкам, начинающимся с S, поэтому оно будет соответствовать только S67-90.

3 голосов
/ 02 апреля 2012

Легко, поставь "S": String pattern = "[S]\\d\\d\\W\\d\\d";

0 голосов
/ 02 апреля 2012

Просто измените сначала \ w на S

S\d\d\W\d\d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...