正则表达式:正面前瞻和单词边框问题

Inf*_*f.S 2 regex regex-lookarounds

你好再次Stackoverflow人!

假设我有这些话:智能手机,智能手机

我想匹配其中的子串"phone".但是,在这两种情况下,我只想要返回"电话",而不是第一种情况下的"电话".除此之外,我只想在单词"phone"只是后缀时才需要匹配,这样:

fonephonetics(仅举例)不匹配.

我假设正则表达式

(phone([?=s])?)\b
Run Code Online (Sandbox Code Playgroud)

会给我我需要的东西,但它目前正在匹配"手机"和"手机",而不是"fonephonetics".我不需要"手机".对于这两种情况我都想要"电话".

关于什么是错的,我能做什么的任何想法?

先感谢您!

Mar*_*ers 5

匹配phone后跟s\b或者\b:

phone(?=s?\b)
Run Code Online (Sandbox Code Playgroud)

前瞻是零宽度匹配,因此s不会作为匹配的一部分返回.