假设我有以下字符串
"qu'ils/elles essayent/essaient"
以下字符串应全部匹配
"qu'ils essayent"
"qu'ils/elles essayent/essaient"
"qu'elles essayent/essaient"
"qu'elles essaient"
我想要一个可用来比较那些字符串的正则表达式。使用正则表达式甚至可以实现这样的功能吗?
答案 0 :(得分:0)
是的,有可能。使用正则表达式,可以具有诸如(il|elle)
之类的备用元素,并且可以具有诸如(s?)
之类的可选元素。还有像[iy]
这样的字符集。
如果输入内容带有/表示法,则必须在该处进行单词拆分并转换为|
语法。
匹配仍包含/的字符串只是另一种选择:
(ils|elles|ils/elles)
答案 1 :(得分:0)
如果可能有多种组合,则可以使用交替列出所有选项的方式:
qu'(?:ils/elles|ils|elles) (?:essayent(?:/essaient)?|essaient)$
^
字符串的开头qu'
字面上匹配(?:ils/elles|ils|elles)
(?:
非捕获组
essayent
字面上匹配(?:/essaient)?
(可选)匹配/essaient
|
或
-essaient
字面上匹配)
关闭非捕获组$
字符串结尾