例如,对于此字符串,我想匹配所有A
和a
:
" A ll a pples m a ke good c a ke。&# 34;
这是我做的:/(.)[^.]*\1*/ig
我首先获得了群组中的第一个角色,可以是任何角色:(.)
然后我添加了[^.]*
,因为我不想匹配任何其他角色。 ;第一个。最后我添加了\1*
因为我想再次匹配第一个字符。我尝试过的所有其他类似变化似乎都无法发挥作用。
答案 0 :(得分:2)
你正在尝试构建的正则表达式将捕获第一个字符,然后使用负向前瞻(tempered dot)尽可能多地捕获相同字符:
(?i)(\w)(?:(?!\1).)*
捕获第1组会保留您需要的角色。在live demo上试一试。
如果正则表达式引擎支持\K
匹配重新设置令牌,那么您可以将其附加到上面的正则表达式only match desired part:
(?i)(\w)(?:(?!\1).)*\K