我需要一个正则表达式来匹配包含字符串 OKAY 的表达式,然后是一个可能的连字符,然后是零个或一个单词字符。在此之后,任何非单词字符都被接受,然后是任何东西。对于匹配的表达式,如果后面没有单词字符,则 OKAY 将更改为 OK,如果后面的字母是 A,则更改为 eg:OA。如果连字符存在,则将其删除。
OKAY => OK
OKAY- => OK
OKAYA => OA
OKAY-A => OA
OKAYAB => OKAYAB (no-match)
OKAY-AB => OKAY-AB (no-match)
示例后面可以跟 eg: .CD 而不改变结果
OKAY.CD => OK.CD
OKAY-.CD => OK.CD
OKAYA.CD => OA.CD
OKAY-A.CD => OA.CD
OKAYAB.CD => OKAYAB.CD (no-match)
OKAY-AB.CD => OKAY-AB.CD (no-match)
我实现这一点的问题是,由于连字符和单词字符都是可选的,我得到“惰性”匹配,它也匹配不需要的情况。为了教育起见,我会欣赏有和没有前瞻的例子(如果可能的话)。