如何使用正则表达式在两个值之间找到任何东西?

时间:2019-07-29 23:27:12

标签: python regex

我从PDF中提取了一份调查打印输出,其中包含以下格式的问题和答案:

“ 15。我对社交场合充满信心。(有时)16.我感到孤独。(经常)17.我感到精力充沛。(从不)”

我没有自己的代码,因为我真的不知道从哪里开始。

我想要的是一个正则表达式,它将返回数字和带括号的响应之间的问题。对于前者,我只想:

“我对社交场合充满信心。”,“我感到孤独。”,“我充满活力。”

2 个答案:

答案 0 :(得分:4)

您可以将以下正则表达式与g标志一起使用:

(?<!\()\b[a-zA-Z ]+\b\.(?![\)])

正则表达式可视化:

enter image description here

Debuggex Demo

每个正则表达式元素的说明:

(?<!\()-负向后看

\b-在单词边界处断言位置

[a-zA-Z ]+-匹配列表中存在的单个字符一次或无限次

\b-在单词边界处断言位置

\.-完全匹配字符.

(?![\)])-前瞻

g标志-第一次比赛后不返回

匹配结果

  

我对社交场合充满信心。

     

我感到孤独。

     

我感到精力充沛。

答案 1 :(得分:1)

在这里,使用.split('.')可能会更好,而不是使用正则表达式。这是假设您拥有的信息是字符串格式。如果没有,请尝试包含有关提取数据的更多信息。

您可以了解如何使用split()方法here

祝你好运!