通常
要使用正则表达式中的特定字符(?+|等),按其字面意思,必须对其进行转义。在常规正则表达式中,这是通过反斜杠完成的\。但是,由于它在Java字符串中具有特殊含义,因此必须使用双反斜杠\\。
这两个示例不起作用:
"???".replaceAll ("?", "!"); //java.util.regex.PatternSyntaxException "???".replaceAll ("\?", "!"); //无效的转义序列
这个例子有效
"???".replaceAll ("\\?", "!"); //"!!!"
分割管道分隔字串
这不会返回预期的结果:
"a|b".split ("|"); // [a,|,b]
这将返回预期结果:
"a|b".split ("\\|"); // [a,b]
转义反斜杠 \
这将产生一个错误:
"\\".matches("\\"); // PatternSyntaxException "\\".matches("\\\"); // 语法错误
这有效:
"\\".matches("\\\\"); // 真正
问题内容: 我有以下要发送到NodeJS服务器的JSON字符串: 当字符串包含字符和 在NodeJS服务器上,我正在像这样解析JSON: 有什么想法我可以设法毫无问题地发送所有字符吗? 问题答案: 我会使用一个库来为您创建JSON 。一些选项是: GSON 克罗福德的解放 这将使转义变得更加容易。一个示例(使用)为:
问题内容: 背景: 我目前正在为企业CMS数据库(业务对象)开发Java前端。目前,我正在构建一个功能,以允许用户构建自定义数据库查询。我已经实施了一些措施,以确保用户只能使用已批准用于用户访问的可用列和运算符的子集进行选择(例如,可以选择SI_EMAIL_ADDRESS,而不能选择更强大的字段,如SI_CUID)。到目前为止,事情一直在进行,但是现在是时候保护此功能免受潜在的SQL注入攻击。 问
反斜线()用于插入在 Markdown 语法中有特殊作用的字符。 这是用来 *演示* 的 _文本_ 这是用来 *演示* 的 _文本_ 这是用来 演示 的 文本 这是用来 *演示* 的 _文本_ 这些字符包括: ` * _ {} [] () # + - . !
问题内容: 为了回答这个问题,我设法通过转义反斜杠来使字符串成为转义字符。 当我尝试将其概括为转义所有转义的字符时,它似乎无能为力: 但是对于特定的转义字符使用相同的方法,它确实起作用: 有一般的方法可以做到这一点吗?应包括,,,等。 问题答案: 使用r’text’将字符串定义为raw,如下面的代码所示:
问题内容: 我正在读取Java中的源文件,但是当我打印它(sysout)时,转义的字符不再转义。如何在Java中转义像和这样的字符? 问题答案: 您应该使用Apache Commons Text中的类(您也可以在Apache Commons Lang3中找到该类,但已弃用该类)。您会发现Apache Commons中还有许多其他产品可能对您在Java开发中遇到的其他问题有用,因此您不必重新发明轮子
问题内容: 当匹配某些字符(例如换行符)时,可以使用正则表达式“ \\ n”或仅使用“ \ n”。例如,以下将字符串拆分为行数组: 但是以下内容同样适用: 我的问题: 上面两个是 完全 一样地工作,还是有细微的差别?如果是后者,能否举个例子,说明您得到不同的结果? 还是仅在[可能/理论]表现上有所不同? 问题答案: 在当前情况下没有区别。通常的字符串转义序列是在单个反斜杠的帮助下形成的,然后有效的