首页 > 解决方案 > 使用正则表达式搜索

问题描述

我想按如下方式提取数据:

问题 11

问题:在以下弹出操作的代码段中查找错误(如果有)。void pop() //从栈中移除一个元素 { printf(“%s”, stack[top++]); }

Option-a: 运行时错误 Option-b: 编译时错误 Option-c: pop 操作执行了,但是 top 移动了错误的方向 Option-d: pop 操作正确执行 查看答案

下面的正则表达式由于某种原因停在第 9 位,而不是从 10 到 12 的选择数字。我无法解决这个问题

我会感谢我得到的每一个帮助。

先感谢您

样本数据和正则表达式代码正则表达式和样本数据

^(?<number>\d{1,2})\.\s(?<question>.*?)\sa\)\s(?<a>.*?)\sb\)\s(?<b>.*?)\s(?:c\)\s(?<c>.*?)\s(?:d\)(?<d>.*?)\s)?)?View Answer\s{0,3}$
  1. 使用堆栈反转单词可用于查找给定单词是否为回文。a) 对 b) 错 查看答案
  2. 哪个是最适合反转单词的数据结构?a) 队列 b) 堆栈 c) 树 d) 图 查看答案
  3. 使用堆栈反转单词或字符串所需的操作是 push() 和 pop()。a) 对 b) 错 查看答案
  4. 使用堆栈算法反转单词的时间复杂度是多少?a) O (N log N) b) O (N2) c) O (N) d) O (M log N) 查看答案
  5. 如果使用堆栈反转单词“abbcabb”,会得到什么单词?a) bbabbca b) abbcabb c) bbacbba d) bbacabb 查看答案
  6. 反转一个单词算法需要多少堆栈?a) 一 b) 二 c) 三 d) 四 查看答案
  7. 如果弹出给定的堆栈会产生什么结果?a) 拍 b) 点击 c) atp d) apt 查看答案
  8. 如果执行以下操作序列会输出什么?推(a,s); 推(b,s);流行音乐(乙);推(c,s);a) abc b) bc) ac d) acb 查看答案
  9. 要执行哪些函数集以获得以下输出?猫 a) 推(c, s); 推(a,s);推(t,s);流行音乐;流行音乐;流行音乐;b) 推(c,s);流行音乐;推(a,s); pop(s);push(t,s);pop(s); c) 流行(c); 流行音乐(一);弹出(t);d) 推(c,s);推(a,s); 弹出(t);查看答案
  10. 如果推送“java”这个词,你的堆栈会是什么样子?a) b) c) d) 查看答案
  11. 在以下代码段中查找错误(如果有)进行弹出操作。void pop() //从栈中移除一个元素 { printf(“%s”, stack[top++]); a) 运行时错误 b) 编译时错误 c) 执行了弹出操作,但顶部移动了错误的方向 d) 正确执行了弹出操作 查看答案
  12. 以下程序的输出将是什么?main() { char str[]="san Foundry"; int len = strlen(str); 诠释我; 对于(我=0;我

标签: javascriptpythonregexweb-scraping

解决方案


问题是,对于问题 10,a) b) 等之后没有答案。如果您也想允许这些答案,您可以使用a\)\s(?<a>.*?\s)?和移动可选组内的空格来使答案成为可选,以防止必须匹配 2 个空格字符。

问题 11中的问题是void pop() //removing an element from a stack { printf(“%s”, stack[top++]); }新的问题。

要修复它,您可以添加一个可选的非捕获组(?:\r?\n.*)?以匹配第二行(如果有的话)。

要匹配所有行和组,您的模式可能如下所示:

^(?<number>\d{1,2})\.\s(?<question>.*?(?:\r?\n.*)?)\sa\)\s(?<a>.*?\s)?b\)\s(?<b>.*?\s)?c\)\s(?<c>.*?\s)?d\)(?<d>.*?\s)?View Answer\s{0,3}$

正则表达式演示


推荐阅读