作为一些柠檬化规则的一部分,我正在尝试形成一个正则表达式,它将匹配以“ses”、“zes”、“xes”、“ches”或“shes”结尾的字符串,我很难正确地获得字母分组。我想下面的方法会有用的
re.fullmatch(r'.*[szx(ch)(sh)]es\b', infl)
但我发现这将匹配“ces”或“hes”词尾,我只希望它匹配“ches”词尾(对于(sh)分组也是如此)。我一定是误解了如何正确地“或”组合群体。每当我在一组字母周围放上括号时,我会匹配里面的所有字母,而不仅仅是字母组合
如何改革fullmatch
表达式以正确工作?我一定是误解了组合分组是如何工作的,所以在这种情况下,简短的解释也会有所帮助
顺便说一句。。。我只需要一份真/假报税表。我对返回的值不感兴趣
一些匹配的例子是:解散,华尔兹,索引,分离,区分
您的正则表达式即使在Java中也不能正常工作,因为字符类中不支持分组。
(
和)
被视为[...]
内的文字括号fullmatch
需要一个完整的字符串匹配,如果您不在乎开始时是什么,只需使用re.search
并在结尾锚定该模式使用
见regex demo和Regulex graph:
详细信息
(?:[zx]|ch|sh?)
-anon-capturing group匹配以下任一项[zx]
-z
或x
|
-或ch
-ch
字符序列|
-或sh?
-s
或sh
es
-es
子串$
-字符串的结尾李>相关问题 更多 >
编程相关推荐