Expression régulière pour rechercher uniquement en majuscules “mots”, avec quelques exceptions

J'ai des chaînes de caractères suivantes:

"The thing P1 must connect to the J236 thing in the Foo position."

Je voudrais correspondre avec une expression régulière seulement ceux en majuscules les mots (à savoir ici P1 et J236). Le problème est que je ne veux pas correspondre à la première lettre de la phrase quand il s'agit d'une lettre mot.

Exemple, dans:

"A thing P1 must connect ..." 

Je veux P1 seulement, pas A et P1. En faisant cela, je sais que je peux manquer d'un vrai "mot" (comme dans "X must connect to Y"), mais je peux vivre avec ça.

En outre, je ne veux pas de match en majuscules les mots si la phrase est en majuscule.

Exemple:

"THING P1 MUST CONNECT TO X2."

Bien sûr, idéalement, je voudrais correspondre les mots techniques P1 et X2 ici mais comme ils sont "cachés" dans la phrase en majuscules et puisque ces mots n'ont pas de modèle spécifique, c'est impossible. Encore une fois je peux vivre avec ça parce que les majuscules phrases ne sont pas si fréquents dans mes fichiers.

Merci!

  • Faire de tous les termes techniques contiennent des nombres?
  • Quoi que vous fassiez, ne pas utiliser de 7 bits littéraux aime [A-Z]. C'est très RADIX-50, et n'a pas sa place dans le code écrit au cours des dernières décennies. Utiliser quelque chose qui fonctionne sur n'importe quel texte. Peu ce qui signifie quelque chose lié à \w ou [[:alpha:]] ou \pL ou \p{Alphabetic}, selon votre expression rationnelle du langage et de l'environnement. En fait, les implémentations varient tellement que certains de ceux-ci peut être légale et de droit, sur certaines plateformes, mais légal et mal sur les autres.
InformationsquelleAutor Patrick | 2011-01-04