2015-03-19 75 views
0

我有这样一个文本文件: - 如果用户raw_inputs公司name'skoda”对文本使用正则表达式匹配字符串

car - superb 
company - skoda simply clever 
manufactured - 1990 
car - sclass 
company - mercedes the best or nothing 
manufactured - 1990  
car - rapid 
company - skoda simply clever 
manufactured - 1990 

,那么就必须给我提供2个细节,因为上面的文本文件已经得到了2辆汽车: -

superb 
skoda simply clever 
1990 
rapid 
skoda simply clever 
1990 

如何,我可以使用上述问题的正则表达式,我都找遍了整个“SO”,但因此未得到匹配我的problem.Please帮我解决!

提前致谢!

+0

你能告诉我们你已经使用了正则表达式尝试了一些示例代码? – Interrobang 2015-03-19 05:50:02

+0

我认为你应该将文本更改为数据列表,然后将用户输入与每个列表项目进行比较。 – SolaWing 2015-03-19 05:54:24

+2

您的问题的所有部分已在StackOverflow上得到解答。 – 2015-03-19 05:54:25

回答

0
car\s+-(?:(?!\bcar\b)[\s\S])*skoda(?:(?!\bcar\b)[\s\S])* 

你可以使用this.This将给出你想要的部分。

https://regex101.com/r/pT4tM5/14

x="""car - superb 
company - skoda simply clever 
manufactured - 1990 
car - sclass 
company - mercedes the best or nothing 
manufactured - 1990 
car - rapid 
company - skoda simply clever 
manufactured - 1990""" 
temp="skoda" 
print re.findall(r"car\s+-(?:(?!\bcar\b)[\s\S])*"+temp+r"(?:(?!\bcar\b)[\s\S])*",x) 
+0

即使是大文本文件,我也可以使用它吗? – 2015-03-19 05:59:09

+0

@itadsd取决于你的文件是多久......试试它虽然!!!!!!! – vks 2015-03-19 06:02:52

+0

非常感谢你回答这个问题! – 2015-03-19 06:12:16