我有以下模式:
<* 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/