我有一个看起来像这样的html文件:
<body>
<p>Hello! <b>[NAME]%</b></p>
</body>
我在java文件中得到的是:
String name = "John";
我的问题是:
谢谢您的帮助!
答案 0 :(得分:0)
您正在使用Java的正则表达式处理器喜欢讨价还价的许多字符。我认为,如果您之前已经编程过Java以进行文本处理,则可以使用String.replace(String,String);。方法将完成您尝试做的事情。
有三种String替换方法。但是,其中两个需要正则表达式。正则表达式希望您“转义”您键入的括号。
以下是从Oracle / Sun的Java文档复制的以下文本:java.lang.String
String replace(CharSequence target, CharSequence replacement)
替换该字符串中与文字目标匹配的每个子字符串 具有指定的文字替换序列的序列。
String replaceAll(String regex, String replacement)
替换该字符串中与给定常规匹配的每个子字符串 给定替换的表达式。
String replaceFirst(String regex, String replacement)
替换与给定字符串匹配的该字符串的第一个子字符串 带有给定替换的正则表达式。
请注意-参数列表中的两个“ regex”会期望regex字符串遵循以下格式以进行模式匹配:
// Regular-Expression Programming with java.lang.String - Several "Escaped" Characters!
// ALSO NOTE: Back-slashes need to be twice-escaped!
String replacePattern = "\\[NAME\\]%";
yourText.replaceFirst(replacePattern, "John");
这些“地狱反斜杠”是必需的,因为正则表达式处理器希望您转义'['和']',因为它们是处理器系统的关键字(保留/特殊字符)。请查看Java 7/8/9文档中的正则表达式,以了解String.replaceFirst
和String.replaceAll
相对于regex变量的工作方式。另外,如果您使用String.replace
,则Java期望的只是直接字符匹配,
yourText = yourText.replace("[NAME]%", "John");
这里是java.util.regex.Pattern上Sun / Oracle页面的链接: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
注意:以下答案是Google关于base64编码的答案的副本。我个人不太理解您的问题。让我知道您是否在谈论UTF-8? UniCode? “ Base64编码的字符串”是什么意思?
Java中base64编码的用途是什么?使用Base64编码方案将指定的字节数组编码为String。返回一个 与此编码等效的编码器实例,但没有 在编码的字节数据的末尾添加任何填充字符。 包装输出流以使用Base64编码字节数据 编码方案。
Java中的base64编码是什么? Base64是一种二进制到文本的编码方案,通过将其转换为基数64表示形式,以可打印的ASCII字符串格式表示二进制数据。每个Base64位代表6位二进制数据.2017年12月6日
这里是有关此问题的Sun页面的链接: https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html