Skip to main content
 首页 » 编程设计

python之在python中使用正则表达式返回特定单词之间的大写单词

2025年05月04日32wayfarer

我刚开始使用正则表达式。

我有一个字符串形式

                Waco, Texas      
 
                Unit Dose 13 and  
 
 
 
 
 
           SECTION 011100       SUMMARY OF WORK 
 
 
 
 
 
    INDEX   PAGE 
 
 
 
PART 1. - GENERAL   1 
 
1.1.    RELATED DOCUMENTS   1 
 
1.2.    PROJECT DESCRIPTION 1 
 
1.3.    OWNER   1 
 
1.4.    ARCHITECT/ENGINEER  2 
 
1.5.    PURCHASE CONTRACTS  2 
 
1.6.    OWNER-FURNISHED ITEMS   2 
 
1.7.    CONTRACTOR-FURNISHED ITEMS  3 
 
1.8.    CONTRACTOR USE OF PREMISES  3 
 
1.9.    OWNER OCCUPANCY 3 
 
1.10.   WORK RESTRICTIONS   4 
 
PART 2. - PRODUCTS - NOT APPLICABLE 4 
 
PART 3. - EXECUTION - NOT APPLICABLE    4 

我为多余的空格道歉,但这是我解析以获得字符串的word文档的形式。

我需要捕获第 1 部分、第 2 部分和第 3 部分之间的所有标题,并将它们存储在不同的列表中。到目前为止我有

matchedtext = re.findall('(?<=PART) (.*?) (?=PART)', text, re.DOTALL) 

如果我理解正确,这些环顾四周应该使用 PART 作为一种基点,并抓取其间的文本。但是,当我运行代码时,matchedtext 不会填充任何内容。

我的问题的第二部分是一旦我在 PART 的不同出现之间有文本,我如何才能将大写标题保存在列表中,每个标题都有一个字符串。 word 文档中的一些字符串包含小写单词,但我只想要全部大写的单词。

总结一下,我如何获取字符串中特定单词之间的文本,一旦我拥有它们,我如何将这些单词作为单独的字符串保存在列表中。

感谢您的帮助! :D

请您参考如下方法:

您甚至不需要使用正则表达式,只需对字符串使用 split 函数即可。如果 s 是您的字符串的名称,它将是:

s.split('PART') 

这将包括第一部分之前的文本,所以不要使用列表的第一个元素:

texts_between_parts = s.split('PART')[1:] 

稍后您可以使用字符串方法 isupper 检查单词是否全部大写。