繁体   English   中英

在正则表达式中匹配单词与句点结尾

[英]Matching word with period at end in regex

目前我正在尝试查看正则表达式java中单词末尾是否有句号,问号或感叹号。 这是我正在尝试的:

if(Pattern.matches("[.!?]$", "test.")){
   // do stuff
}

这里我只是使用示例test. 这是一个词,最后有句号。 这个正则表达式不会捡起来。 我正在使用这个正则表达式,因为它会寻找三个.!? 在句子结尾,因为我使用$

Pattern.matches匹配整个字符串。 您可以修改模式,也可以使用Matcher.find

选项1:

Pattern.matches(".*[.!?]", "test.")

选项2:

Pattern.compile("[.!?]$").matcher("test.").find()

您可以使用正则表达式的正向前瞻来搜索.!? 在一个字的前面。 您可以看到此StackOverflow答案,以了解有关正面和负面前瞻的更多信息。

(\w+)(?=[.!?])

看到这个链接

采用

Pattern.matches("(\\w+)(?=[.!?])]", "test! tset some ohter! wordsome?")

匹配信息

MATCH 1
1.  [0-4]   `test`
MATCH 2
1.  [16-21] `ohter`
MATCH 3
1.  [23-31] `wordsome`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM