gpt4 book ai didi

Ruby 正则表达式过滤掉以 "string"后缀结尾的单词

转载 作者:数据小太阳 更新时间:2023-10-29 07:25:27 30 4
gpt4 key购买 nike

我正在尝试提出一个将匹配以下字符串的 Ruby 正则表达式:

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

基本上,: 之后的第一个单词不应以 eding 结尾

这是我目前拥有的:

^(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 的经验,但我想您也可以进行拆分并检查第二个单词是否以 eding 结尾。对于 future 的程序员/同事来说,后一种方法可能更容易处理。

关于Ruby 正则表达式过滤掉以 "string"后缀结尾的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47188358/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com