正则表达式匹配一个单词和我发现的第一个parenteshis

时间:2018-06-15 15:23:37

标签: python regex

我需要一个正则表达式匹配像'estabilidade'之类的单词然后匹配任何东西,直到它到达第一个parenteshis。 我已经尝试了一些我在互联网上找到的正则表达式,但我很难制作自己的正则表达式,因为我不明白它是如何工作的。 有人可以帮帮我吗?

我试过的正则表达式是:

re.search(r"([^\(]+)", resultado) -> trying to get just the parenteshis.

re.search(r"estabilidade((\s*|.*))\(+", resultado).group(1)

真实例子(需要拿起括号内的所有数字,但知道这个数字与哪个单词有关。例如,前7个与句子'Procura por estabilidade'有关):

Procura por

estabilidade

(7)

É   assertivo(a)
com  os  outros

(5)

Procura convencer

os  outros

(7)

Espontaneamente

se  aproxima

dos outros

LIDERANÇA   INFLUÊ

10

9

(6)

Demonstra

diplomacia

(5)

4 个答案:

答案 0 :(得分:0)

这应该这样做:

estabilidade([^(]+)

它正在使用一个负面的角色类,这是关键的拿走和你的包里的一个好工具。 []是一个字符类。这是一个字符列表,如果你将^作为第一个字符,那么它就是的字符列表。因此[^(]表示任何不是(的字符。添加+表示左侧至少有1个项目。所以,把所有这些放在一起我们至少需要1个非(

以下是Python:

import re

text = "hello estabilidade how are you today (at the farm)"
print (re.search("estabilidade([^(]+)", text).group(1))

输出:

 how are you today

使用示例:

https://regex101.com/r/2qxa0y/1/

这是一个学习一些基本正则表达技巧的好网站,这将有很长的路要走:https://www.regular-expressions.info/tutorial.html

答案 1 :(得分:0)

这样的东西?

In [1]: import re

In [2]: re.findall(r'([^()]+)\((\d+)\)', 'estabilidade_smth(10) estabilidade_other(20)')
Out[2]: [('estabilidade_smth', '10'), (' estabilidade_other', '20')]

答案 2 :(得分:0)

由于您没有指定要检查的匹配字符串的哪一部分,因此我添加了一些组。

import re

s = 'hello there estabilidade this is just some text (yes it is)'
r = re.search(r"(estabilidade([.\S]+))\(", s)
print(r.group(1))  # "estabilidade this is just some text"
print(r.group(2))  # " this is just some text"

答案 3 :(得分:0)

对于我的问题,我使用以下正则表达式解决了该问题,使用以下工具为此处的用户指明一个用户(https://regex101.com/r/2qxa0y/1/

((|.|[(]|\s)*)\((\d*)\)

谢谢大家!