recherche

Maison  >  Questions et réponses  >  le corps du texte

python 正则表达式

如何匹配一个前面没有“代理”二字的中文公司如:火狐有限公司
但“火狐代理有限公司”就不匹配。而且“公司”必须得有
我是这样的,但是python里运行并没有成功,
[\u4e00-\u9fa5]+(?<!代理)有{0,1}限{0,1}公司,谢谢

PHPzPHPz2893 Il y a quelques jours283

répondre à tous(3)je répondrai

  • 高洛峰

    高洛峰2017-04-18 09:16:36

    Merci, je ne suis pas doué en expressions régulières, mais vous pouvez essayer [u4e00-u9fa5]{1,}.{1,}[^代理]公司, ça a fonctionné dans mon test

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:16:36

    python2 doit utiliser Unicode pour la correspondance

    regex = ur'^(?!.*代理.*).*公司$'
    print(re.findall(regex, u'火狐代理有限公司'))
    print(re.findall(regex, u'代理有限公司'))
    print(re.findall(regex, u'有限公司'))

    python3 Supprimez simplement u et c'est fait

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:16:36

    Je pense que tu devrais écouter les conseils du copain hier et utiliser python3
    Je l'ai essayé avec python3 et tout est normal, mais je n'arrive pas à obtenir le résultat en 2.

    python3 下的运行结果:
    
    >>> re.findall(r'^[^代理].*有?限?公司', "火狐代理有限公司")
    ['火狐代理有限公司']
    >>> re.findall(r'^[^代理].*有?限?公司', "代理有限公司")
    []
    >>> re.findall(r'^[^代理].*有?限?公司', "有限公司")
    ['有限公司']
    >>>

    répondre
    0
  • Annulerrépondre