carapace,
@carapace@mastodon.social avatar

Is this a bug in Go's regexp package? This program should print false instead it prints true:

package main

import (
"fmt"
"regexp"
)

func main() {
r := regexp.MustCompile("^1|0$")
fmt.Printf("%v\n", r.MatchString("00"))
}

I checked against Python's re module and it works as expected:

>>> import re
>>> r = re.compile('^1|0$')
>>> print(r.match('00'))
None

eob,
@eob@social.coop avatar

@carapace Maybe your regex is being interpreted as

(^1)|(0$)

So it matches anything beginning with 1 or ending with 0

if you change it to

^(1|0)$

does that work as you expect to match either a single 0 or 1?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • golang
  • DreamBathrooms
  • ngwrru68w68
  • modclub
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • mdbf
  • GTA5RPClips
  • megavids
  • tacticalgear
  • normalnudes
  • tester
  • osvaldo12
  • everett
  • cubers
  • ethstaker
  • anitta
  • Leos
  • cisconetworking
  • provamag3
  • JUstTest
  • lostlight
  • All magazines