如何从包含特殊字符的字符串中找出单词

Posted

技术标签:

【中文标题】如何从包含特殊字符的字符串中找出单词【英文标题】:how can i find out words from string that contain special char 【发布时间】:2019-03-20 17:58:11 【问题描述】:

例如:

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

o/p:

ABC_11
ABCDE_12

【问题讨论】:

你在找java解决方案还是mysql 欢迎来到 ***。您能否更具体地提出您的问题,以便我们更好地为您提供帮助?例如,特殊字符是什么意思? 试试这个:***.com/questions/1805518/… 特殊字符表示任何东西,例如: String sqlQuery="INSERT INTO TABLE(ID) VALUES(#ABC_11#),(#ABCDE_12#)"; 【参考方案1】:

试试这个

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

【讨论】:

【参考方案2】:

您需要先清理输入名称。 这可能会对您有所帮助:

//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+")"

【讨论】:

以上是关于如何从包含特殊字符的字符串中找出单词的主要内容,如果未能解决你的问题,请参考以下文章

如何通过忽略字符串前面的特殊字符从文本中提取正确的字符串?

如何从字符串中删除特定单词 - Ruby

如何在java中读取字符串中的特殊字符[关闭]

如何判断字符串中是不是存在特殊符号?

如何使用单词及其点击事件获取特殊字符

将单词与特殊字符(é、è、...)进行比较时忽略变音符号