我正在编写一个正则表达式,用于匹配以 T 开头且以 A 结尾的单词。
我的正则表达式如下:
^T\..*A$
现在我想排除单词TEA
。如何使用正则表达式来排除特定单词。
您的正则表达式 ^T\..*A$
匹配以 T.
开头,然后是任意 0+ 字符(除了换行符之外的所有字符,用 .*
表示),最后以 A
结尾的字符串。
如果要匹配任何以 T
开头,以 A
结尾但不等于 TEA
的字符串,可以使用以下正则表达式:
(?s)^(?!TEA$)T.*A$
(?si)^(?!TEA$)T.*A$
(?si)
- DOTALL(s
)修饰符允许。
匹配任何字符和IGNORECASE(i
)修饰符使模式不区分大小写^
- 字符串的开头(?!TEA$)
- 负向前瞻,如果整个字符串等于TEA
,则匹配失败T
- T
字母.*
- 0+个字符,尽可能多A
- A
字母$
- 字符串的结尾。请注意,如果您在matches()
方法中使用它,则可以删除第一个^
和最后一个$
。
Pattern p = Pattern.compile("((T|t)[A-Za-z]+(A|a))");
Matcher m = p.matcher("TEA or tea IS NOT TEEA or teea");
while(m.find()) {
System.out.println(m.group(1));
}
T
开头且以A
结尾的单词。但是必须排除tea
这个单词。 - pkc456