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结尾.对于未来的程序员/同事来说,后一种方法可能更容易处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |