java - 正则表达式返回不期望的结果

标签 java regex

我正在尝试从正则表达式中捕获一个遵循以下模式的组:

Ex1 - anyanyany 组 1 必须是 anyanyany

Ex2 - anyanyany.abcany 组 1 必须是 anyanyany

Ex3 - anyany.abcde.fghi 组 1 必须是 anyany.abcde

当我尝试 (.+)(?:\.) 时,它只返回 Ex2 和 Ex3。如果我将其更改为 (.+)(?:\.)* 它会返回相同的输入字符串。

我真的不知道该怎么办才能解决这个问题。有人可以帮助我吗?我缺少哪些知识?

https://regex101.com/r/jG6wY8/2

最佳答案

您可以使用此正则表达式:

^([^.]+(?:\.[^.]+)?)

RegEx Demo

PS:regex101 demo中使用了^([^.\n]+(?:\.[^.\n]+)?)因为演示在不同的行中有多个输入。

关于java - 正则表达式返回不期望的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31568827/

相关文章:

java - 在 jersey 项目中包含 jersey-bom import scoped 依赖项的目的是什么?

java - Jackson:自定义 JSON 反序列化器

java - 最适合边界检查的地方——构造函数还是设置函数?

java - 我该如何使用方法?

Java/Eclipse - 条件断点和计数器?

python - 正则表达式在某些字符之前查找文本

regex - 访问比赛结果的更好方法?

javascript - 如何创建子字符串,替换子字符串?

正则表达式:(#) 和 (? 或 & 或\n) 之间的所有内容

python-3.x - 在Python中将特定的中文标点符号替换为相应的英文标点符号