我希望您能匹配一个单词,然后获取该单词之前的所有内容,直到第一个句点或字符串的开头。
例如,给定以下字符串,搜索单词“regex”:
它应该返回:
但它会给我第一个周期,然后是从“regex”开始的所有内容:
例如,给定以下字符串,搜索单词“regex”:
s = 'Do not match this. Or this. Or this either. I like regex. It is hard, but regex is also rewarding.'
它应该返回:
>> I like regex.
>> It is hard, but regex is also rewarding.
我正在努力理解前瞻和后顾,但是(似乎)你不能轻易地回望,只有在你匹配的模式紧挨着时才可以。我可以用以下代码接近:
pattern = re.compile(r'(?:(?<=\.)|(?<=^))(.*?regex.*?\.)')
但它会给我第一个周期,然后是从“regex”开始的所有内容:
>> Do not match this. Or this. Or this either. I like regex. # no!
>> It is hard, but regex is also rewarding. # correct
*
会抓取任何东西,从本质上讲是向后直到碰到句点,同样也是向前的吗? - JeffThompson[^.]*
匹配任何字符并逐个返回,直到下一个子模式(“正则表达式”)成功。如果不起作用,则正则表达式引擎尝试从字符串的下一个位置开始相同的操作。 - Casimir et Hippolyte