使用正则表达式删除前导字符串

Kir*_*ran 3 regex

我需要构建一个RegEx,以从给定的字符串中删除前导的“ The”或“ A”或“ An”和“空格”。

例如,给定的字符串为:

敏捷的棕色狐狸跳过了懒狗

使用Regex,我希望删除开头的“ The”并返回

快速的棕色狐狸跳过那只懒狗

我尝试过(从评论中添加)

^*(?<=[The|An|A]\s){1}.*
Run Code Online (Sandbox Code Playgroud)

它工作正常,但在一种情况下,未返回预期结果。请参阅下面的方案。

输入:褐狐狸->结果=褐狐狸

输入:一只快速的棕色狐狸->结果=快速的棕色狐狸

输入:在晴天->结果=晴天(预期为晴天。因为字符串不是以A开头)

输入:American An bank->结果=一个银行(预期为American An bank ..,因为字符串不是以An开头)

ste*_*ema 7

你自己尝试了什么?您想要实现的目标并不困难,例如,尝试使用Regular-Expresions.info上的本教程

您在想太多,甚至变得复杂。尝试这个:

^(The|An|A)\s+
Run Code Online (Sandbox Code Playgroud)

并替换为空字符串。

看到这里Regexr

^ 匹配字符串的开头。

(The|An|A) 替代匹配第一个拟合替代。

\s+ 匹配至少一个以下空格。

变化

快棕色狐狸

一只快速的棕色狐狸

在晴天

美国银行

褐狐狸

褐狐狸

在晴天

美国银行