Project

General

Profile

Actions

Bug #20262

closed

Regex mismatch between Ruby 3.2.2 and 3.3.0

Added by weilandia (Nick Weiland) 9 months ago. Updated 6 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:116687]

Description

This might be a duplicate of https://bugs.ruby-lang.org/issues/20098, but I cannot make it match with the backref so maybe not.

Below example matches in 3.2.2 but not in 3.3.0

str = "------------abcdefg------------#3895912"
re = /()\1\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+\b/
re.match?(str)

Updated by weilandia (Nick Weiland) 9 months ago

I accidentally left the "()\1" in the original post, but it should not be there and I don't see a way to change it. The code example should be:

str = "------------abcdefg------------#3895912"
re = /\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+\b/
re.match?(str)

Updated by mame (Yusuke Endoh) 6 months ago

  • Status changed from Open to Closed

Maybe the same issue as https://bugs.ruby-lang.org/issues/20083. Fixed at 3.3.1.

$ RBENV_VERSION=3.2.2 ruby -e 'str = "------------abcdefg------------#3895912"
re = /\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+\b/
p re.match?(str)'
true

$ RBENV_VERSION=3.3.0 ruby -e 'str = "------------abcdefg------------#3895912"
re = /\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+\b/
p re.match?(str)'
false

$ RBENV_VERSION=3.3.1 ruby -e 'str = "------------abcdefg------------#3895912"
re = /\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+\b/
p re.match?(str)'
true
Actions

Also available in: Atom PDF

Like0
Like0Like0