rust 针对重复字母的组合(即:?)

ny6fqffe  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(94)

我正在尝试创建一个正则表达式,它将匹配以下语句:

steal
stealer
photograph
photographer

但不能匹配:

steale
photographe

我尝试了下面的RustExp,但是重复只针对R而不是E:

(steal|photograph)(er?)
  • 注意:这个问题已经从一个更大的正则表达式中简化了,使用(steal)是不可行的|偷窃者|照片|#21453;,如果有可能的话,就可以避免它。
pcww981p

pcww981p1#

只需将?移动到括号的外部,使其应用于整个组,而不仅仅是r字符:

(steal|photograph)(er)?

Playground
请注意,如果您不打算捕获任何一个组的内容,则可以将它们更改为非捕获组,这可以提高性能,因为不需要提取组匹配:

(?:steal|photograph)(?:er)?

相关问题