Quais termos do meu regex eu devo usar no lugar de / b para não estar sujeito a interferências por caracteres de controle no MS Word ou em suas bibliotecas?

0

Estou usando Dynamic Hotstrings como parte da minha implementação de AutoHotkey . Tem sido uma ferramenta inestimável na aprendizagem de expressões regulares.

Atualmente, uso intensamente a expansão de texto em meus processos diários no escritório. Estou tendo problemas no software de processamento de texto ao usar a formatação de texto. No caso de eu negrito, itálico ou, de outra forma, fornecer uma modificação no formato no início de uma cadeia que, de outra forma, expandiria, ele não será expandido porque o caractere de controle faz parte da cadeia. Eu tenho usado o \ b como o switch inicial no meu regex.

Eu estou olhando para ver se há um atalho dentro do mundo regex para explicar esses tipos de caracteres sem enumerá-los manualmente. Existe tal coisa?

Se não, existe uma referência útil de todos os caracteres de controle que eu precisaria explicar no MS Word?

Obrigado pelo seu tempo.

    
por EFH 02.10.2012 / 15:41

2 respostas

1

Com o exemplo que você deu nos comentários, aconselho apenas remover o \b no começo. É claro que não é o ideal, e pode desencadear a expansão quando você não quer, mas quantas vezes você digita palavras que terminam com "oic"?

Uma solução mais elegante seria ter algo assim:

hotstrings("([^a-zA-Z])oic"tailchar,"%$1%Officer in Charge (OIC)%$2%")

Mas infelizmente não posso testar isso porque não consigo fazer o DynamicHotstring funcionar: /

    
por 02.10.2012 / 21:17
0

Expressões regulares só podem lidar com o que você definiu para lidar. Eles não assumem que você tenha caracteres em negrito ou algum outro tipo de formatação. Você terá que incluir esses caracteres em sua expressão regular se você pretende capturá-los.

Exemplo:

/\bsomething\b/

Tornar o negrito opcional nos dois lados:

/\b\u0002*something\u0002*\b/

Eu verificaria se há uma maneira de eliminar isso no programa que você está usando. A única maneira de evitar ter que usar os próprios caracteres é se o programa os remover antes de tentar corresponder à expressão regular.

    
por 02.10.2012 / 19:55