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

Как найти слова из строки, содержащие специальный символ Бывший:

String sqlQuery = "INSERT INTO TABLE(ID) VALUES(#ABC_11#),(#ABCDE_12#)";

о / п:

ABC_11
ABCDE_12

Вы ищете решение для Java или MySQL?

Roshana Pitigala 16.10.2018 10:48

Добро пожаловать в StackOverflow. Не могли бы вы дать более конкретный вопрос, чтобы мы могли помочь вам лучше? Что вы, например, имеете в виду под специальным символом?

adickinson 16.10.2018 10:49

попробуйте это: stackoverflow.com/questions/1805518/…

soorapadman 16.10.2018 10:50

специальный символ означает что угодно, например:

mukta 16.10.2018 10:51

Строка sqlQuery = "ВСТАВИТЬ В ТАБЛИЦУ (ID) ЗНАЧЕНИЯ (# ABC_11 #), (# ABCDE_12 #)";

mukta 16.10.2018 10:51

# - специальный символ.

mukta 16.10.2018 10:52

№: из строки «ВСТАВИТЬ В ТАБЛИЦУ (ID) ЗНАЧЕНИЯ (# ABC_11 #), (# ABCDE_12 #)»; найдите # значения, например ABC_11 и ABCDE_12

mukta 16.10.2018 10:54

Похоже, вы пытаетесь вручную вставить параметры в свой SQL-запрос. Это делает вас уязвимым для SQL-инъекция. Узнайте о «параметризованных запросах» и используйте их вместо них!

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

Ответы 2

попробуй это

String sqlQuery = "INSERT INTO TABLE(ID) VALUES(#ABC_11#),(#ABCDE_12#)";
        Matcher matcher = Pattern.compile("#(.*?)#").matcher(sqlQuery);
        while (matcher.find()) {
            System.out.println(matcher.group().replaceAll("#",""));
        }

Выход

ABC_11
ABCDE_12

Сначала вам нужно очистить имена входов. Это может вам помочь:

//your dirty name inputs
String dirty_name = "#ABC_11#"

//removes special characters like [~!@#$%^&*()-=+]
String name = dirty_name.replace('[^\w]','')

//put in your query
String sqlQuery = "INSERT INTO TABLE(ID) VALUES("+name+")"

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