加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby正则表达式过滤掉带有“字符串”后缀的单词结尾

发布时间:2020-12-17 03:43:00 所属栏目:百科 来源:网络整理
导读:我想提出一个与以下字符串匹配的 Ruby Regex: MAINT: Refactor somethingSTRY-1: Add somethingSTRY-2: Update something 但不应该匹配以下内容: MAINT: Refactored somethingSTRY-1: Added somethingSTRY-2: Updated somethingMAINT: Refactoring somethi
我想提出一个与以下字符串匹配的 Ruby Regex:

MAINT: Refactor something
STRY-1: Add something
STRY-2: Update something

但不应该匹配以下内容:

MAINT: Refactored something
STRY-1: Added something
STRY-2: Updated something

MAINT: Refactoring something
STRY-3: Adding something
STRY-4: Updating something

基本上,后面的第一个单词:不应该以ed或ing结尾

这就是我目前所拥有的:

^(MAINT|(STRY|PRB)-d+):s([A-Z][a-z]+)s([a-zA-Z0-9._-].*)

我尝试了[^ ed]和[^ ing],但是因为我的目标不仅仅是单个字符,所以它们不会在这里工作.

我无法找到适当的解决方案来实现这一目标.

解决方法

你可以用

^[-w]+:s*(?:(?!(?:ed|ing)b)w)+b.+

a demo on regex101.com.

细分说:

^                     # start of the line/string
[-w]+:s*            # match - and word characters,1+ then :
(?:                   # non-capturing group
    (?!(?:ed|ing)b)  # neg. lookahead: no ed or ing followed by a word boundary
    w                # match a word character
)+b                  # as long as possible,followed by a boundary
.*                    # match the rest of the string,if any

我没有使用Ruby的经验,但我想你可以选择拆分并检查第二个单词是否以ed或ing结尾.对于未来的程序员/同事来说,后一种方法可能更容易处理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读