2010-06-15 7 views
3

Les matches suivants en veille, mais ne correspond pas à lorsqu'il est exécuté dans une méthode dans un fichier de module:En utilisant la fin de la marque verbale avec unicode dans les expressions régulières en Python

import re 
re.search('\\bשלום\\b','שלום עולם',re.UNICODE) 

alors que les matches suivants dans les deux cas:

import re 
re.search('שלום','שלום עולם',re.UNICODE) 

(Notez que Stackoverflow passe par erreur les premier et deuxième articles dans la ligne ci-dessus comme cela est un droit à la langue de gauche)

Comment puis-je faire le premier match de code à l'intérieur un fichier py?

Mise à jour: Ce que j'aurais dû écrire pour le premier segment, c'est qu'il correspond dans Idle, mais ne correspond pas lorsqu'il est exécuté dans la console eclipse avec PyDev.

+0

La première re.search() ne fonctionne pas pour moi en IDLE ou module. – Lee

+0

Avez-vous essayé 're.LOCALE' au lieu de UNICODE? J'installerais les paramètres régionaux, mais j'ai un peu peur que je ne l'obtienne jamais. Hors sujet: certains disent que google translate va trop loin 'apt-get install user-il; hebrew-settings' devient 'apt-get install user-en; anglais-settings' qui est impressionnant, mais faux;) – msw

+0

@Lee, ni le premier pour moi, bien que le second fait. Je mentionne ceci comme nous sommes probablement tous les deux dans un endroit non-il et siooo beaucoup de choses en dépendent. Curieusement, l'ordre de la pâte est correct. – msw

Répondre

2

semble fonctionner pour moi quand je suis en utilisant des chaînes unicode:

# -*- coding: utf-8 -*- 

import re 
match = re.search(u'\\bשלום\\b', u'שלום עולם', re.U) 

Voir en action: http://codepad.org/xWz5cZj5

+0

La notation '# coding = utf-8' est-elle identique à' # - * - coding: utf-8 - * - '? Je demande parce que c'est la première fois que je le vois comme ça. Si non, veuillez le corriger. – tzot

+0

@ ΤΖΩΤΖΙΟΥ - désolé de vous décevoir, mais je ne sais pas. ': |' Je ne connais aucun Python, en fait, et j'ai tout appris de Google et des documentations. J'ai fait cette chose étrange parce que je veux apprendre Python (un jour), et je connais l'hébreu. – Kobi

+0

Pas de déception ici, ne vous inquiétez pas; vous avez bien fait pour quelqu'un ne sachant pas Python :) Il était possible qu'il y avait une notation alternative que je ne connaissais pas. Je l'ai corrigé pour vous. – tzot