我正在创建YML模板以匹配文件(通过Python解析),在YML模板中,我必须输入与输入文件和Python匹配的字段,然后转换为数据库(CSV文件)。
但我面临与公司细节相匹配的问题。该文件的一部分如下所示:
COMPANY DETAILS
Date : 01-06-2018
ABC Industries
12-31 Lane
New York
Contact No. 1111
该公司实际上是ABC Industries。但是在我的文件中,Date
介于COMPANY DETAILS
文本和实际公司详细信息之间。
我将Date
匹配为:
date: Date :\s+(\d+\-\d+\-\d+)
在YML模板文件中。但我无法匹配公司的细节。
我正在使用这样的Regex跳过从文本DATE
开始的行:
company: COMPANY DETAILS\s+^(Date :.*)?([A-Za-z\s*]*)\s+Contact No.
但它不起作用。请帮我一个正确的正则表达式,它跳过任何空白行或以Date :
开头的行,以便我可以从文本中提取正确的公司详细信息。
提前致谢。
修改
此问题现已解决。
COMPANY DETAILS\s+Date :\s+\d+\-\d+\-\d+\s+([A-Z ]*)\n
诀窍。
答案 0 :(得分:0)
使用re.search
<强>演示:强>
import re
s = """COMAPNY DETAILS
Date : 01-06-2018
ABC Industries
12-31 Lane
New York
Contact No. 1111"""
m = re.search("(?<=COMAPNY DETAILS)(?P<company>.*?(?=Contact))", s, flags=re.DOTALL)
if m:
print( m.group('company') )
<强>输出:强>
ABC Industries
12-31 Lane
New York
答案 1 :(得分:0)
您可以使用
void *dlopen2(const char *filename, int flags){
if(/*your conditions*/)
return void *dlopen(filename, flags);
return (void *) NULL;
}
请参阅regex demo
<强>详情
COMPANY DETAILS\s+Date\s*:.*\s*(.+)
- 文字子字符串COMPANY DETAILS
- 1+空格\s+
- Date\s*:
,0 +空格,Date
:
- 在.*\s*
- 第1组:包含公司数据的行。(.+)