本文通过展示各种不同的正则表达式结构,以及在实际应用中会用到的技巧,熟悉掌握正则表达式的应用。
问题描述:
在这个实例中你要解决如下几个问题。
1、想要在一个字符串中找到所有的color和colour。
2、想要找到这3个以"at”结尾的单词中的任意一个:bat、cat或rat。
3、想要找到以phobia结尾的单词。
4、想要找的名字"Steven”的常见变形:Steve、Steven和Stephen。
5、想要匹配术语"regular expression”的所有常见形式。
解决方案:
下面按顺序列出用来解决这些问题的正则表达式。所有这些解决方案中都使用了不区分大小写的选项。
问题1:color和colour
\bcolou?r\b
正则选项:不区分大小写
正则流派:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby
问题2:bat、cat或rat
\b[bcr]at\b
正则选项:不区分大小写
问题3:以"phobia"结尾的单词
\b\w*phobia\b
正则选项:不区分大小写
问题4:Steve、Steven和Stephen
\bSte(?:ven?|phen)\b
问题5:"regular expression”的变体
\breg(?:ular·expressions?|ex(?:ps?|e[sn])?)\b
正则选项:不区分大小写
正则流派:.NET、Java、JavaScript、PCRE、Perl、Python、Ruby
解析:
\b #判断一个单词边界位置
reg #匹配"reg”
(?: #分组但是不捕获
ular\ # 匹配"ular”
expressions? # 匹配"expression”或"expressions"
| # 或者:
ex # 匹配"ex”
(?: # 分组但是不捕获
ps? # 匹配"p”或"ps"
| # 或者:
e[sn] # 匹配"es”或"en"
)? # 结束非捕获分组,整个分组为可选
) # 非捕获分组的结束
\b #判断一个单词边界位置
注:这5个正则表达式都使用了单词边界(<\b>)确保只会匹配整个单词。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
我有一篇很长的文章,还有一长串我想在这篇文章中找到的单词。 现在,为了搜索这些单词,我检查“正则表达式”,然后找到“word1 | word2 | word3 | word4…”问题是,如果其中一个单词是“eat”,那么包含“eat”的每个单词也会高亮显示。我怎样才能防止呢?
我需要一种使用RegEx搜索文本并在Latex命令中找到一个单词的方法(这意味着它在花括号内) 这是一个例子: 现在如果你搜索正则表达式:,并将其替换为< code>$1T~a~r~z~a~n$3 这将只替换花括号中的泰山这个词,而忽略另一个实例!这是我来的最远的地方。 现在我需要的是对下面的例子做同样的事情: 在这个例子中,我只需要最后提到的“泰山”被替换(\grk{}中的那个) 有人可以帮助我
我在寻找单词“house”和“car”时有一个要求,但它们必须在10个单词之间。我有以下正则表达式: 这适用于任何单词组合。但是,这并不满足“10字以内”的要求: 因此,以下内容将是一个很好的匹配: 但是,以下内容不应匹配: 汽车文字1文字2文字3文字4文字5文字6文字7文字8文字9文字10文字11房屋 我怎样才能做到这一点?提前感谢。
我正在尝试抓取模式中第一个连字符之后的文本 但在此模式中: 我希望它跳过‘不想要的’文本,并匹配的文本后面的下一个连字符(DesiredText)。我创建了一个具有两种模式regex101,并需要修改我的基本regex,以便如果中存在一个或多个我不想匹配的单词,那么它将匹配第二个连字符文本: https://regex101.com/r/vesqh3/1
问题内容: 我需要有关正则表达式的帮助:我正在尝试检查一个句子是否包含特定单词。 让我们以这个主题的标题为例: “正则表达式以查找字符串中的特定单词” 我需要查找它是否包含 if ,在这种情况下它是错误的。 我无法使用包含的方法,因为在这种情况下它将返回true( 如果为 * ic, 则为 spec * ) 我当时在考虑使用方法匹配,但我有点正则表达式。 基本上,匹配方法输入中的正则表达式需要指定
在这个问题的背景下,我想做以下修改: 查找: funcA(参数0,参数1,参数2,参数3); 替换: funcA可以有除param0之外的任意数量的参数。怎么做呢?为简单起见,忽略基本情况,即当传递给funcA的参数仅为param0时。 funcA是: 职能是: 编辑: 参数(param1,param2..)只是包含字母的字符串。