Java регулярное выражение для окончания с * - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь написать регулярное выражение в Java, чтобы соответствовать буквенно-цифровой строке, которая может иметь *.Но если он содержит *, то он должен быть в конце этой строки.Он может содержать только одно *

Ниже ввод должен возвращаться true

abcd

abcd*

*

Где, как показано ниже, ввод должен возвращать false, так как он содержит *, который не находится в конце этой строки

abc*d
abcd**

Я пытался написать программу Java, как показано ниже, но она не работает

public static void main(String[] a){
    String pattern = "[a-zA-Z0-9]+[\\*]$";
    String test = "abcd*";
    System.out.println(test.matches(pattern));
}

Возвращается true для abcd*, но не для abcd и *

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

1 Ответ

0 голосов
/ 12 сентября 2018

Вы должны указать, что конечная звездочка необязательна, используя?

[a-zA-Z0-9]*[*]?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...