我不知道如何用一些条件语句构建正则表达式,即:我必须在文本中搜索以下内容:
[infdca]{0,4}r[i][nf]
返回一些单词,好的。
但是,我想将[i]
限制在这样的陈述中:
[infdca]{0,4}r(?[i][nf])
我的意思是,如果存在[i]
,则[nf]
会添加到正则表达式,否则不会。
上面的内容确实会返回任何内容,或者当我更改某些内容时,它会返回一个不正确的单词firn
,因为小组[nf]
不会直接跟随r
字母。 [i]
后面必须r
首先或任何内容。
有什么建议吗?
答案 0 :(得分:2)
如果您的意思是文字以i[nf]
结尾,则可以移动?
:
[infdca]{0,4}r(i[nf])?
(您可能需要在\
,(
或)
之前加?
,具体取决于您的正则表达式。)
答案 1 :(得分:0)
如果您希望[nf]
只是[i]
的一部分,那么您需要创建一个组并使该组可选。
[infdca]{0,4}r(?([i][nf])?)
这使得([i][nf])?
全部都是可选的......所以如果整个群组都存在,则仅搜索[nf]
...但它不一定存在。
答案 2 :(得分:0)
如果你想匹配单词,你需要在那里进行单词边界 - \b
或类似的东西。而已。 (如果匹配单词列表,则为^
和$
。)