[英]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.