Home > Software engineering >  Ruby regex anchors combined with character class &&
Ruby regex anchors combined with character class &&

Time:10-12

I am trying to match a string containing printable ascii without some special characters, for example the character 'x'. I use this regex /[.&&[^x]]/ for this task.

When trying to match if the whole string is made from this character specification the regex doesn't match any more. /^[.&&[^x]]*$/

Trying this with the normal dot works however. /^.*$/ matches every string i throw at it.

I'm using Ruby 2.7.2

The regex is constructed at runtime and the /^ ... $/ anchors are needed for other edge cases.

CodePudding user response:

Printable ASCII regex is [ -~].

To match any printable ASCII char other than x, just use character class subtraction on this class: [ -~&&[^x]].

To match a string that only contains such chars use

/\A[ -~&&[^x]]*\z/

See the Rubular demo.

  • Related