用正则表达式在纯文本中搜索重复的汉字?

时间:2013-02-27 07:43:15

标签: regex unicode textmate

首先我知道匹配中文unicode应该使用

[\x{4e00}-\x{9fa5}]

然后我使用组和反向引用

([\x{4e00}-\x{9fa5}])\1

但结果是邻接,如“中中”。

我需要文本中任何地方出现多次的所有字符。 喜欢

中国保持中立
^      ^

PS.I使用textmate编辑器。

有任何帮助吗? TIA!

1 个答案:

答案 0 :(得分:2)

你可以这样做:

  1. 匹配所有字符直到该字符的最后一次出现

    ([\x{4e00}-\x{9fa5}]).*\1
    

    here on Regexr

  2. 匹配所有内容直到该角色的下一次出现

    ([\x{4e00}-\x{9fa5}]).*?\1
    

    here on Regexr

  3. 如果您只想匹配文字中稍后出现的字符,并且您不希望匹配其间的所有字符,并且如果支持lookaheads < / p>

    ([\x{4e00}-\x{9fa5}])(?=.*\1)
    

    here on Regexr

    这与上次发生的情况不符! (因为该字符在文本中不再跟随。)