我需要一个正则表达式匹配像'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)
答案 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*)\)
谢谢大家!