у меня есть регулярное выражение Java:Java - String.replaceAll заменить все символы, не в шаблоне
^[a-zA-Z_][a-zA-Z0-9_]{1,126}$
Это означает:
- Начните с алфавитным символом или символа подчеркивания.
- Последующие символы могут содержать буквы, цифры или символы подчеркивания.
- Длина от 1 до 127 символов.
Теперь я хочу заменить строку с символами не в этом регулярном выражении с символом подчеркивания.
Пример:
final String label = "[email protected]#";
System.out.println(label.replaceAll("^[^a-zA-Z_][^a-zA-Z0-9_]{1,126}$", "_"));
Но результат все равно [email protected]#
.
Как я могу «преобразовать» его в _3_fgh99__
?
Поскольку «23_fgh99 @ #» начинается с '2', а не' [a-zA-Z_] ', совпадений нет. – Maroun
Попробуйте 'label.replaceAll ("^[^ a-zA-Z_] | (?
Упс, кажется, у меня есть ответ после редактирования :). –