Java Regex Problem - PullRequest
       6

Java Regex Problem

1 голос
/ 15 июля 2009

Я работаю над этим битом кода, который проверяет строку кода ActionScript 3 на наличие типа (MovieClip, Sprite, наряду с пользовательскими классами, определенными в пути к классам), который находится в коллекции, которая повторяется.

for (String type: typeList) {
    if (input.contains(type)) {
        // dome something here
    }
}

Проблема в том, что некоторые из имен пользовательских типов также содержат имя другого типа:

Custom type: fSceneController
Contains flash type: Scene

Таким образом, метод .contains не будет работать должным образом. Я думал об использовании регулярного выражения в цикле, где шаблон проверяет тип и проверяет, что a-zA-Z0-9 нет непосредственно перед или после типа.

Pattern p = Pattern.compile("<stuff here>"+ type + "<more stuff here>");

Может ли кто-нибудь помочь мне определить, что я должен поместить до и после типа, чтобы сам тип мог быть обнаружен отдельно от других типов, которые могут содержать часть текста?

Или, возможно, предложить другой метод, который я могу использовать для достижения той же цели?

Ответы [ 2 ]

6 голосов
/ 15 июля 2009

Не уверен, что я ясно понимаю, что вы пытаетесь сделать, но я думаю, что это то, чего вам не хватает

Если вам нужно слово в регулярном выражении и просто слово, поместите \ b спереди и сзади, например

\bhe\b will only match the first of...

he
she
the
they
0 голосов
/ 15 июля 2009

Вы также можете проверить длину, например,

for(String type : typeList)
    if(input.contains(type) && input.length() == type.length())
        System.out.println("Found " + type);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...