Eu li os artigos sobreexpressões regularesjá. Meu desejo é manipular strings citadas no Word (tenho a versão 2013).
Preciso substituir os caracteres de aspas por parênteses.
Por exemplo:
"Olá Mundo."
deverá ser substituído por
(Olá Mundo.)
Tentei procurar "*"
e substituir por \(*\)
.
Mas não tive sucesso tentando isso.
Responder1
OAjuda do Microsoft Word 2007 para “Localizar e Substituir”diz: “Quando oUse curingascaixa de seleção estiver marcada, o Word localizará apenas o texto exato que você especificar.” Esta afirmação um tanto enigmática significa
- a pesquisa por texto alfabético diferencia maiúsculas de minúsculas (embora você possa conseguir insensibilidade a maiúsculas e minúsculas com uma expressão de pesquisa como
[Hh][Ee][Ll][Ll][Oo]
), - aspas retas (
"
) e aspas curvas (“
e”
) não são equivalentes – procurar por uma não encontrará nenhuma das outras,
… e provavelmente outras coisas.
Portanto, se o seu documento usar aspas retas, pesquise "([!"]@)"
. (Expressões de pesquisa curinga do Microsoft Word – que sãonãoexpressões regulares – use para significar qualquer caractere[!qx-z]
outrodo que q
, x
, y
, ou z
, porque ^
é usado para outras coisas (comparável ao papel de \
em regexs verdadeiras), e eles usam @
para significar uma ou mais ocorrências do caractere ou expressão anterior, porque *
significa qualquer string, e acho que eles pensaram em atribuir um significado especial para +
seria muito confuso para usuários não acostumados com expressões regulares verdadeiras.) Assim como nas expressões regulares estendidas, os parênteses são usados para agrupar subexpressões. Se o seu documento usar aspas curvas, pesquise “([!“”]@)”
. Ou, se você tiver ambos, pesquise [“"]([!“"”]@)["”]
. Em ambos os casos, substitua por (\1)
. O \1
refere-se ao conteúdo do primeiro (e único) grupo delimitado por parênteses na expressão de pesquisa, que é o texto entre aspas. Um tanto confuso, os parênteses aqui são apenas caracteres literais; então isso fornece o resultado da substituição de aspas por parênteses.
Observe que, uma vez que @
significaumou mais ocorrências do caractere ou expressão anterior (ou seja, age como +
em expressões regulares), essas instruções não encontrarão strings nulas (ou seja, dois caracteres de aspas consecutivos, sem nada entre eles).