重复Regex测试,在编写要匹配的正则表达式时需要帮助

ffdz8vbo  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(100)

我正在为学生的问题写测试用例。我不希望学生必须完全匹配我的输出为他们的问题,但他们的解决方案确实需要包含正确的答案。例如,这里有一个简单的程序,要求学生输入一个数字,一个质量,然后输入一个日期,并输出一些结果。

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时间以及,但你得到的要点)。

  1. [a-zA-Z0-9:\.\(\)]+VIII[\n\.:a-zA-Z0-9]+882.0000000000001+[\n\.:a-zA-Z0-9]+is magic[\n\.a-zA-Z0-9]
  2. \b\w+(?:\s+\w+)*\s+VIII\b[\w\s\d,:.]+882[\w\s\d,:.]+\bis magic\b
  3. \b\w+(?:\s+\w+)*\s+VIII\b\w+[?:\w+\s+\d,:.]+882.0000000000001\b\w+[\w+\s+\d+,\/:.]+\bis magic\b
  4. .*?VIII\n.*?882\n.*?is magic\n
    上述正则表达式及其变体都不能与上面粗体的输出一起工作。我的猜测之一是\n导致了问题,但我无法证明或反驳这个理论。
    先谢谢你了。
b1uwtaje

b1uwtaje1#

要在整个文本中检查这3个值,可以使用以下命令。

(?s).*?IX.*?578\.2.*is magic.*
  • "...我的猜测之一是\n导致了问题..."*

(?s)修饰符将切换到 “单行” 模式。这将导致点元字符.也匹配换行符。

相关问题