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

字符串[重复]中特定措辞的正则表达式

宰父深
2023-03-14

我正在比较以字符串形式交付的版本编号。

我需要检测某个版本是否为beta版本,我想检查该版本的最后一部分是否包含beta、build或b,我正在尝试使用regex执行此操作。

到目前为止,它可以工作,但一旦版本部分有一个空间,它就不行了。

也许有人有更好的主意?

迄今为止我的正则表达式:

(\d+)(beta|build|b(\d*))?

字符串示例:

v1。23 Beta125--

v1。25.458 beta 129--

示例代码:

private Boolean getBeta(String str) {

        boolean version = false;
        Pattern p = Pattern.compile("(\\d+)(beta|build|b(\\d*))?");

        Matcher m = p.matcher(str);

        if (!m.find()) {

            return version;

        } else
            version = true;

        return version;
    }

共有3个答案

赵立果
2023-03-14

我的意思是,你只需要找出版本字符串中是否有a、beta或build,对吗<代码>包含可以执行此操作。您不需要正则表达式:)

你也可以用这个正则表达式

build|beta|b

检查search是否返回true。

您可能还希望启用不区分大小写选项。

柴耀
2023-03-14

您可以使用空格作为可选(0或更多)

尝试此正则表达式

(beta|build|b)\s*(\d+)
山阳辉
2023-03-14

您还可以使用以下限制性更强的正则表达式

v?\s*(\d+(\.\d*)*)+\s*(beta|build|b)\s*(\d+)

在regex101上测试:https://regex101.com/r/oLoVN3/2

您需要在每个反斜杠\之前添加一个反斜杠\,以便在您的代码中使用它。

 类似资料:
  • 我想使用正则表达式屏蔽字符串的子字符串。 字符串输入=

  • 我想使用正则表达式屏蔽字符串的子字符串。 字符串输入=

  • 问题内容: 我想搭配以下 com.my.company。 moduleA .MyClassName com.my.company。 moduleB .MyClassName com.my.company。 anythingElse .MyClassName 但 不是 以下 com.my.company。 核心 .MyClassName 我当前的简单正则表达式模式是: 因此,基本上,我该如何匹配其他

  • 关于正则表达式有很多类似的问题,但我仍然对以下情况感到困惑:

  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?

  • 我在创建一个正则表达式以接受任何字符串和ENTER键时遇到了一个问题,目前我有以下问题: 我环顾四周,人们说要添加< code>\n,但这不起作用。 字符串是应该允许的一个例子如下: