正则表达式:查找单词中间的字母(变音符号/重音符号)“î”,但不查找单词开头或结尾的字母 î

正则表达式:查找单词中间的字母(变音符号/重音符号)“î”,但不查找单词开头或结尾的字母 î

î我必须找到单词中间的字母(变音符号/重音符号) ,而不是î单词开头或结尾的字母。

例如:

1.stăpînii

2.înstăpanit

3.coborî

4.înfornît

î因此正则表达式必须从像第一个单词这样的单词中找到字母: stăpînii

第 2 和第 3 个单词的字母î位于开头或结尾。因此,在查找时必须忽略这些字母。

第 4 种情况比较棘手。它以 开头,中间î还有一个。因此,只有第二种情况必须通过正则表达式找到。îî

最终的:î正则表达式必须找到第一个单词中的字母stăpînii,还必须找到î最后一个单词中的第二个字母înfornît

答案1

您想在这里使用前瞻和后瞻:

(?<=\w)î(?=\w)

解释:

(?<=\w)î(?=\w)  
(?<=  )         #positive lookbehind, "must be preceeding the match"
    \w     \w   #match any word character
       î        #character to match
        (?=  )  #positive lookahed, "must be following the match"

例子

答案2

比环视更有效率,使用非字边界,它将步数减少了 2。

  • Ctrl+F
  • 找什么:\Bî\B
  • 查看 环绕
  • 查看 正则表达式
  • Find All in Current Document

解释:

\B          # NON word-boundary, make sure we have a word character before
î           # letter î
\B          # NON word-boundary, make sure we have a word character after

截屏:

在此处输入图片描述

答案3

对于 Notepad++,使用(?<!\<)î(?!\>)

  • (?<!...)- 负面后视(即:前面的文本不匹配)
    • \<- 单词边界的开始(正则表达式扩展)
  • (?!...)- 负面前瞻(即:后续文本不匹配)
    • \>- 单词边界的结束(正则表达式扩展)

相关内容