Skip to content
← Back to Community
Are Regular Expressions in Test Cases for Class Assignments Working?
Profile icon
JohnDutton

I am trying to use regular expressions in test cases and I am unable to get anything other than literal matching to work. Specifically, I am trying to check the output of:

print ("Hello World")

and I have set the regular expression to each of the following without success:

/Hello World/i
/Hello World/
new RegExp(/Hello World/i);

Is this functionality working and I am missing some documentation?

Voters
Profile icon
RichardCheung11
Profile icon
SamrathAcharya
Profile icon
slaforest0
Profile icon
daveavis
Profile icon
JohnDutton
Comments
hotnewtop
Profile icon
NicolasMcIntyre

I just ran into this problem while setting up my AP CS A class and it made me feel dumb. 🙁

One way to make regex work properly is to explicitly mark the start ^ and end $ of the string your pattern is to match.

^Hello, World!\n[a-zA-Z0-9]+$

No forward slashes /.

The example is me figuring out how to test Exercise 2 from Chapter 1 of Think Java 2e by Allen Downey.

Profile icon
rammonsnova

Regular expressions don't work properly (or not at all). I've tried several variations, with/without start/end "/" markers as well as lots of others...all based on Mozilla ECMA regex, as referenced in your documentation.

I have noticed that if I put incorrect regex (i.e. invalid), the system will hang when running the test. So, it looks like it's running SOME kind of regex algo...but it's just very poorly implemented/documented.

Please fix this as it is a vital part of your platform for us instructors.

I've taken most of regex out, and will likely delete the specific test so it doesn't cause a failure for my students...but here's the link so that an admin can look at the assignment and run a test regex.

You can see, however, in the image below that it is treating the regex characters as literals...at least in how it's displaying output:
image

Profile icon
gideonyuval

I'm seeing the exact same thing. What works is only what

@daveavis
wrote below. I can't get flags to work

Profile icon
daveavis

This has been driving me crazy, too, and I finally figured something out. I've gotten regular expressions to work, but I can't get flags to work.

In a Hello World assignment I got the following regular expressions tests to pass. Expected output is "Hello world!"
\w+
(\w)\s(\w)
\w\s\w
[Hh]ello\s[Ww]orld!

It seems that regular expressions work if you don't put the leading and trailing "/". But, this leads to the issue of how to add flags. I'd really like to be able to add flags like "i" for case-insensitivity. Here are some things I tried that didn't work. Maybe someone can figure something out.
hello world!/i
hello world!//i
hello world!/i
"hello world!"/i
"hello world!",i
RegExp("hello world!", "i")
RegExp('hello world!', 'i')
new RegExp('hello world!', 'i')