当前位置: 首页 > 知识库问答 >
问题:

发生多个匹配时的java regex首选项

李胡媚
2023-03-14

嗨,我特别想了解“OR”运算符在java Regex中是如何工作的。我刚刚开始使用它,大多数事情对我来说都不清楚。

pattern1 = Pattern.compile("\\d+|\\d+/\\d+"))
pattern2 = Pattern.compile("\\d+/\\d+|\\d+"))
inputStr = "blah... 231/232 blah... 4 blah... 2"
[junit] found 231
[junit] found 232
[junit] found 4
[junit] found 2
[junit] found 231/232
[junit] found 4
[junit] found 2

所以对我来说最重要的问题是:这种行为是可靠的/可预测的,还是对于不同的平台会有所不同?

但也只是好奇...这个问题也是:我也觉得它令人困惑,因为运算符“or”对于它的自变量来说应该是对称的,就像加法一样。你可以想象当1+2和2+1带有不同的语义时人们会担心...这里的pattern1和pattern2在语义上有什么不同吗?

共有1个答案

葛修筠
2023-03-14

不仅仅是,它的意思是“匹配第一件事,如果失败,则匹配第二件事”。

因此,您希望将分数放在第一位,因为它是首选形式。

 类似资料:
  • 问题内容: 这似乎很基本,但我无法弄清楚。 我有一个表“ item_tags”,我想选择所有与标签1和2匹配的项目(例如,每个项目都必须同时具有两个标签)。 我将如何在mysql中执行此操作? 创建表是: 谢谢! 问题答案: 使用: 您需要定义GROUP BY和HAVING子句,并且不同标签ID的数量必须等于您在IN子句中指定的标签数。

  • 如何精确匹配img标记的多个实例?我读了一些关于preg_match的教程,但从未真正理解。 我以此为基础: 我做了一个小的像正则表达式: 在这之后,我就卡住了。我如何继续匹配所有直到两个字符串的末尾? 我在PHP网站上发现了数组部分: 使用我的代码,我如何获得图像URL和alt标签? 谢谢

  • 是否可以让Selenium匹配多个类名? 例如: 谢谢

  • 问题内容: 我正在使用语句,以便将输入插入到SQL Server数据库表中。如何在块中执行多个条件。请参考下面的代码。 当前,它仅执行此行。如何执行条件中的所有3行()。 前任 : 这就是我的期望。我只想更新旧字段()并将记录插入同一张表。我不能用逗号分隔这些语句。SQL发出 语法错误 谢谢你。 问题答案: 您可以使用 它来实现: 请记住,此方法有一些局限性,更多信息: MS Connect

  • 我正在搜索一个正则表达式来匹配文本中的所有C#方法,每个找到的方法(引用为“内容”)的主体应该可以通过组访问。 如果文本中只存在一种方法,则上面的C#Regex只能给出所需的结果。 原文: 正则表达式: 如果source中只包含method1,那么它可以完美地工作,但是使用其他method2时,只有一个匹配项,并且不能再提取单独的方法体对。 如何修改正则表达式以匹配多种方法?

  • 我在设置中使用ListPreference,我希望颜色适应当前主题的颜色。目前,我正在将主题的alertDialogTheme样式更改为我自己的样式。我已经了解了如何更改对话框标题的颜色、对话框按钮的颜色、单选按钮的文本以及当前所选项目的单选按钮的颜色。我想更改未选中项目单选按钮的颜色。我用红色圈出了我想改变的颜色。 列表首选项: 主题风格: