Java 如何创建一个模式来查找*.ABS的序列?

Java 如何创建一个模式来查找*.ABS的序列?,java,regex,Java,Regex,我想用Java创建一个模式,该模式将为以下行返回true: 一些东西 hellomynameis.ABS 任何\u字符串\u或\u number.ABS 我尝试使用*.ABS作为模式,但它不起作用。首先,您需要将所有内容匹配到.ABS,因为您可以使用一个点(.),出现次数为0或更多(*量词)。然后要匹配.ABS,需要\\.ABS 您可以使用以下选项:- .*\\.ABS 当然,如果您只想匹配以.ABS结尾的字符串,那么string.endsWith将是更好的选择。这里不需要正则表达式。首先,您

我想用Java创建一个
模式
,该模式将为以下行返回true:

一些东西

hellomynameis.ABS

任何\u字符串\u或\u number.ABS


我尝试使用
*.ABS
作为模式,但它不起作用。

首先,您需要将所有内容匹配到
.ABS
,因为您可以使用一个
点(.)
,出现次数为0或更多(
*
量词)。然后要匹配
.ABS
,需要
\\.ABS

您可以使用以下选项:-

.*\\.ABS

当然,如果您只想匹配以
.ABS
结尾的字符串,那么
string.endsWith
将是更好的选择。这里不需要正则表达式。

首先,您需要匹配所有内容,直到
.ABS
,因为您可以使用0或更多出现次数的
点(.)
*
量词)。然后要匹配
.ABS
,需要
\\.ABS

您可以使用以下选项:-

.*\\.ABS

当然,如果您只想匹配以
.ABS
结尾的字符串,那么
string.endsWith
将是更好的选择。这里不需要正则表达式。

如果只想找到以
ABS
结尾的每个字符串,那么就这样做

if (line.endsWith(".ABS")) {
  // do your stuff
}
或者,对于现实生活中的字符串:

if (line.trim().toUpperCase().endsWith(".ABS")) {
  // do your stuff
}

如果您只想查找以
ABS
结尾的每个字符串,请执行以下操作

if (line.endsWith(".ABS")) {
  // do your stuff
}
或者,对于现实生活中的字符串:

if (line.trim().toUpperCase().endsWith(".ABS")) {
  // do your stuff
}

如果您使用的是
模式.matches
,则不需要正则表达式中的
^
$
锚;它仍将尝试匹配整个字符串。@TedHopp。。哦,是的。忘记了。@RohitJain不起作用(java.util.regex.PatternSyntaxException:在索引0*\\附近悬挂元字符'*'。ABS@VextoR..注意一个
点(.)
*
之前。如果您使用
模式,它是
*
而不仅仅是
*
。匹配
,您不需要正则表达式中的
^
$
锚;它无论如何都会尝试匹配整个字符串。@TedHopp..哦,是的。忘记了。@RohitJain不起作用(java.util.regex.PatternSyntaxException:在索引0*\\附近悬挂元字符'*'。ABS@VextoR..请注意
*
之前的
点(.)
。它是
*
而不仅仅是
*
尝试\w+[a][B][S]我在这方面也不好,所以我选择评论而不是评论answering@BhavikShah-您的模式有几个问题。首先,除非您退出
(否则它将匹配“CABS”)。其次,
[A][B][C]
ABC
完全相同,因此这里不需要使用字符类。更好的模式版本应该是
\w+\.ABC
(或者,作为Java字符串,
“\\w+\.ABC”
)。然后,OP可能希望在“.ABC”之前匹配非单词字符,因此
可能比
\w
更好。最后,OP可能还希望匹配字符串“.ABC”(前面没有),因此
*
可能比
+
更好。请尝试\w+.[A][B][S]我在这方面也不好,所以我选择评论而不是评论answering@BhavikShah-您的模式有几个问题。首先,除非您退出
(否则它将匹配“CABS”)。其次,
[A][B][C]
ABC
完全相同,因此这里不需要使用字符类。更好的模式版本应该是
\w+\.ABC
(或者,作为Java字符串,
“\\w+\.ABC”
)。然后,OP可能希望在“.ABC”之前匹配非单词字符,因此
可能比
\w
更好。最后,OP可能还希望匹配字符串“.ABC”(前面没有任何内容),因此,
*
可能比
+
更好。您在每个
if
中都缺少一个右括号,这是一种特殊的Java方言,我们不需要在if块开始之前的最后一个右括号anym…errr..感谢您的更正:dyYou在每个
if
中都缺少一个右括号,这是一个规范ial Java方言,我们不需要在if块anym开始之前的最后一个结束语…呃..谢谢更正:D