Corresponde a qualquer palavra não-ASCII no Notepad ++

0

Eu quero combinar qualquer palavra não-ASCII com mais de 2 letras e adicionar colchetes ao redor dela. Ou seja esta string

[i]Abandon one's post:[/i] [c]P.[/c] τάξιν ο οὕνεχ’ ὅρκων, ἀν λείπειν, [c]V.[/c] τάξιν το ἐρημοῦν.

deve se tornar

[i]Abandon one's post:[/i] [c]P.[/c] [[τάξιν]] ο [[οὕνεχ]]’ [[ὅρκων]], ἀν [[λείπειν]], [c]V.[/c] [[τάξιν]] το [[ἐρημοῦν]].

Eu tentei com isso, mas não correspondia a nada

(?i)\b[a-z]*(?![a-z])\pM*\pL\w*

link

    
por greektranslator 09.07.2017 / 09:05

1 resposta

0

O AFAIK Npp não conhece a propriedade mark \pM , mas você pode fazer:

  • Ctrl + H
  • Encontre o que: \b((?:(?![a-zA-Z])\pL){3,})\b
  • Substituir por: [[$1]]
  • Substituir todos

Explicação:

\b              : word boundary
(               : start group 1
  (?:           : start non capture group
    (?!         : lookahead, make sure next character is NOT
      [a-zA-Z]  : latin letter
    )           : end lookahead
    \pL         : any letter in any language, case insensitive
  ){3,}         : must appear at least three times
)               : end group 1
\b              : word boundary

Substituição:

[[$1]]          : content of group 1 surrounded with brackets

Resultado para o exemplo dado:

[i]Abandon one's post:[/i] [c]P.[/c] [[τάξιν]] ο [[οὕνεχ]]’ [[ὅρκων]], ἀν [[λείπειν]], [c]V.[/c] [[τάξιν]] το [[ἐρημοῦν]].
    
por 21.08.2017 / 11:49