Python 3正则表达式-从字符串间距未知的句子中提取未知子字符串

时间:2020-01-29 02:46:46

标签: regex string substring character python-3.7

我正在尝试提取句子中两个子字符串之间的未知子字符串,这是一种标准设计。

示例:

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)

1 个答案:

答案 0 :(得分:1)

正则表达式to_csv()

它同时匹配大小写单词。单词中间有'is'也很有效,例如 this paris [A-Za-z] +上的括号选择该组,以后可以使用。

'^ *object *([A-Za-z]+) *is.*'

输出:

import re

task = "objectChairislocatedinrow8"
object = re.search(r'^ *object *([A-Za-z]+) *is.*', 
task, re.IGNORECASE)

print(object.group(1))