Как вы пишете регулярное выражение, которое позволяет специальный символ DOT? - PullRequest
3 голосов
/ 25 мая 2011

Как вы пишете регулярное выражение, которое позволяет использовать символ DOT (.) В имени пользователя?

Например:

R. Robert
X. A. Pauline 

Ответы [ 5 ]

5 голосов
/ 25 мая 2011

Побег из точки с обратной косой чертой: \.

3 голосов
/ 25 мая 2011

[a-zA-Z. ]+ позволяет использовать буквы, точки и пробелы.

import java.util.regex.*;

public class Test {
  public static void main(String [] args) throws Exception {
    String RE = "[a-zA-Z. ]+";
    String name = args[0];
    Pattern pattern = Pattern.compile(RE);

    Matcher m = pattern.matcher(name);
    System.err.println("`" + RE + 
                       (m.matches()?"' matches `":"' does not match `") + 
                       name + "'");
  }
}

Запуск:

$ java Test "R. Robert"
`[a-zA-Z., ]+' matches `R. Robert'

$ java Test "R.-Robert"
`[a-zA-Z., ]+' does not match `R.-Robert'
2 голосов
/ 25 мая 2011

Ваш вопрос не очень понятен - для начала регулярные выражения ничего не "разрешают" или "запрещают", они просто соответствуют (или не соответствуют) тексту. Это код, который вызывает регулярное выражение, который решает, что делать (например, является ли регулярное выражение поиском частичных совпадений недопустимых символов или указанием совпадения для всего белого списка и т. Д .?).

Читая между строк, если вы спрашиваете, как включить буквенный символ . в регулярное выражение, вам нужно его избежать - что в (почти?) Всех механизмах регулярных выражений означает, что перед ним стоит обратная косая черта.

Например, регулярное выражение:

P\..R

означает «заглавная буква P, затем точка (.), Затем любой символ, затем заглавная буква R» и будет соответствовать

P.AR
P..R
P.$R

но не

PEAR
PA.R
P.
P\.AR

и т.д.

2 голосов
/ 25 мая 2011

для поиска точки в регулярном выражении вам обычно нужно экранировать ее, поскольку это специальный символ.

используйте \. для выхода.

Вам не нужно экранироватьесли он является частью группы захвата:

[A-Za-z.] будет искать буквы и '.'характер.

0 голосов
/ 25 мая 2011

Персонаж.is.

Например, если вы хотите получить буквы и точку:

[\ w.] +

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