用一些条件构建正则表达式

时间:2016-04-06 17:18:36

标签: regex

我不知道如何用一些条件语句构建正则表达式,即:我必须在文本中搜索以下内容:

[infdca]{0,4}r[i][nf]

返回一些单词,好的。 但是,我想将[i]限制在这样的陈述中:

[infdca]{0,4}r(?[i][nf])

我的意思是,如果存在[i],则[nf]会添加到正则表达式,否则不会。 上面的内容确实会返回任何内容,或者当我更改某些内容时,它会返回一个不正确的单词firn,因为小组[nf]不会直接跟随r字母。 [i]后面必须r首先或任何内容。

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

如果您的意思是文字以i[nf]结尾,则可以移动?

[infdca]{0,4}r(i[nf])?

(您可能需要在\()之前加?,具体取决于您的正则表达式。)

答案 1 :(得分:0)

实施Regex可选组

如果您希望[nf]只是[i]的一部分,那么您需要创建一个组并使该组可选。

[infdca]{0,4}r(?([i][nf])?)

这使得([i][nf])?全部都是可选的......所以如果整个群组都存在,则仅搜索[nf] ...但它不一定存在。

答案 2 :(得分:0)

如果你想匹配单词,你需要在那里进行单词边界 - \b或类似的东西。而已。 (如果匹配单词列表,则为^$。)