Как найти \ в регулярном выражении Java?

Я хочу найти строку ????\??-?? в D:\it\2020\02-20\123\13.json. ? - это цифра.

Как я могу найти его с помощью регулярного выражения Java?

"D:\it\2020\02-20\123\13.json".indexOf("2020\02-20")
Nick 13.04.2018 08:00

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

Raman Mishra 13.04.2018 08:00

почти уверен, что вам понадобится двойная обратная косая черта

Scary Wombat 13.04.2018 08:00

Вы должны избегать обратной косой черты в java, чтобы у вас был String backslash = "\\";, и когда вы хотите использовать обратную косую черту в регулярном выражении, вам также нужно избегать ее, поэтому вам нужен String regex = "\\\\";

user8097737 13.04.2018 08:03
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При написании регулярного выражения в java мы экранируем символ \ с помощью другой обратной косой черты. Поэтому, если вы хотите поставить один символ обратной косой черты, вам следует использовать \\, но если вы хотите избежать обратной косой черты, вы делаете это с помощью \\\\. Следующее регулярное выражение должно нормально работать в вашем случае:

\\d+\\\\\\d+-\\d+

Если вы хотите быть конкретным, используйте:

\\d{4}\\\\\\d{2}-\\d{2}

Я предпочитаю писать String regex = "[0-9]{4}\\\\[0-9]{2}-[0-9]{2}", чтобы уменьшить количество обратной косой черты, чтобы ее легче не пропустить.

user8097737 13.04.2018 08:09

@devpuh Значит, по вашему мнению, чтобы не допустить появления обратной косой черты, мы должны сделать ее нечитаемой?

user7780894 13.04.2018 08:37

@round Единственное изменение в том, что \\d заменен на [0-9], так что у вас больше нет \\\\\\d. Подождите, это был \\\\\\d или \\\\\d, что делают все обратные косые черты?

user8097737 13.04.2018 08:41

@devpuh В этом нет необходимости. Тот, кто может понять вариант использования четырех обратных косых черт, также поймет, что используют шесть подряд. Ваш комментарий не имеет смысла.

user7780894 13.04.2018 08:47

Другие вопросы по теме