java - 如何使用java在正则表达式中转义星号

标签 java regex

我有以下模式:

<* ab: cdef *>
<************>
abc: <starting now>

我需要转义具有 <* 模式的行。

我使用了 \\*\\\\* 来转义\和 *。但这不起作用

如何使用 Java 转义正则表达式中的 *?

我无法转义仅包含 < 的行,因为其他行也会被跳过。

我使用了以下代码:

if(str.matches("<\\*.*")) {
                //Do nothing.
}

str 使用 BufferedReader 初始化,如下所示:

FileInputStream fstream = new FileInputStream(filename);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String str = br.readLine(); 

最佳答案

要在正则表达式中转义 *,您需要双反斜杠:\\* 因为 * 是正则表达式中的特殊字符。

您也可以尝试使用此方法(如果您希望此模式出现在行的开头,就像您的示例中一样):

if (str.trim().startsWith("<*")) {
    //your code
}

因此,如果您希望模式出现在字符串中的任何位置,您可以使用:

if (str.contains("<*")) {
    //your code
}

我很确定这些简单的情况不需要正则表达式。

关于java - 如何使用java在正则表达式中转义星号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31740982/

相关文章:

javascript - 解析 UM 字符串的 JavaScript 正则表达式

java - java匹配器模式中的正则表达式

regex - 正则表达式是否可以设计为 'reverse' 以将其每个模式输出到列表或表格中?

java - 如何查看工作项变更集文件项是否新增或修改?

java - JCheckBox组件可以添加到JComboBoxes中吗?

java - Java 中的奇怪输出?

java - 使用模式和匹配器

java - 属性类构造函数的描述含义

java - 关于如何将大文件读取到 jtextarea 的建议

Java:替换第一个位置上除符号 "+"之外的所有非数字符号