正则表达式比较两个带斜线的字符串

时间:2019-06-02 14:11:17

标签: python regex

假设我有以下字符串

"qu'ils/elles essayent/essaient"

以下字符串应全部匹配

"qu'ils essayent"

"qu'ils/elles essayent/essaient"

"qu'elles essayent/essaient"

"qu'elles essaient"

我想要一个可用来比较那些字符串的正则表达式。使用正则表达式甚至可以实现这样的功能吗?

2 个答案:

答案 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字面上匹配
  • )关闭非捕获组
  • $字符串结尾

Regex demo