【发布时间】:2020-05-14 12:34:44
【问题描述】:
我试图在一个句子中的两个子串之间提取一个未知的子串,它有一个标准的设计。
例子:
object Ball is located in row 8
objectballisLocatedINROw8
objectChairislocated in row 4
object CupboardisLocated in row 22
在上面的句子中,语句遵循如下特定模式:
object<optional spacing>item-name<optional spacing>is<optional spacing>located<optional spacing>in<optional spacing>row<optional spacing>some integer
此外,子字符串可能有奇怪的情况,如完全大写、完全小写或以不可预测的方式混合大小写(请参阅上面的例句以了解我的意思)。
我的目标:
提取item-name,其中item-name 可以是任何未知大小写的未知字符串(大写、小写、两者的混合)
我尝试了什么?
import re
task = "objectChairislocatedinrow8"
object = re.search(r'(\s)*object(\s)*[a-z]*(\s)*is(\s)*located(\s)*in(\s)*row(\s)*\d+(\s)*',
task, re.IGNORECASE)
print(object)
【问题讨论】:
-
你的正则表达式很好,你只需要删除空格周围的捕获组并在字符串的
item-name部分周围添加一个:regex101.com/r/PAIzzJ/1
标签: regex string substring character python-3.7