我正在为学生的问题写测试用例。我不希望学生必须完全匹配我的输出为他们的问题,但他们的解决方案确实需要包含正确的答案。例如,这里有一个简单的程序,要求学生输入一个数字,一个质量,然后输入一个日期,并输出一些结果。
Please enter a number between 1 and 10 (inclusive): 8
The Roman number for 8 is VIII.
Please enter the mass in kg: 90
The weight of 882.0000000000001 is just right.
Please enter the 2 digit month: 06
Please enter the 2 digit date: 10
Please enter the 2 digit year: 60
The date 6/10/60 is magic
我想让学生有他们的输出有任何文本,他们选择,只要他们有正确的答案(九,578. 2和“是魔术”)为这一特定的一组数据。
我需要使用正则表达式测试,但是,我还没有成功地编写一个正则表达式的工作。
- 注意 * 我的正则表达式经验有限。我使用chatGPT开始。然后,我将chatGPT的输出放到www.example.com中regex101.com,并使用调试器,这样我就可以按照解析器(?))正在浏览我的答案与表达。
以下是我的各种尝试(我修改了这些serval时间以及,但你得到的要点)。
[a-zA-Z0-9:\.\(\)]+VIII[\n\.:a-zA-Z0-9]+882.0000000000001+[\n\.:a-zA-Z0-9]+is magic[\n\.a-zA-Z0-9]
\b\w+(?:\s+\w+)*\s+VIII\b[\w\s\d,:.]+882[\w\s\d,:.]+\bis magic\b
\b\w+(?:\s+\w+)*\s+VIII\b\w+[?:\w+\s+\d,:.]+882.0000000000001\b\w+[\w+\s+\d+,\/:.]+\bis magic\b
.*?VIII\n.*?882\n.*?is magic\n
上述正则表达式及其变体都不能与上面粗体的输出一起工作。我的猜测之一是\n
导致了问题,但我无法证明或反驳这个理论。
先谢谢你了。
1条答案
按热度按时间b1uwtaje1#
要在整个文本中检查这3个值,可以使用以下命令。
\n
导致了问题..."*(?s)
修饰符将切换到 “单行” 模式。这将导致点元字符.也匹配换行符。