正则表达式,如何匹配某些角色但必须与其他角色存在?

时间:2018-03-31 03:29:40

标签: python regex

我想要做的是实现一个简单的自动本地化工具,该工具将检查所有中文字符并用一些键替换它们。

有一些规则:

  1. 匹配的文字必须在""
  2. 之间
  3. 匹配的文本必须包含中文,Unicode范围为[\u4e00-\u9fff]
  4. 匹配的文字可能包含字母,数字或标点符号,我们可以简单地包含[a-z]
  5. 他们的订单没有限制
  6. 我们说"我很nice""你好"会匹配,但"hello"将不匹配。

    那么,如何在python中编写正则表达式来实现呢?

    ur'"([\u2000-\u206f\u3000-\u303f\u4e00-\u9fff\ufb00-\ufffd\w]*[\u4e00-\u9fff]+[\u2000-\u206f\u3000-\u303f\u4e00-\u9fff\ufb00-\ufffd\w]*)"'将进行数学计算。

2 个答案:

答案 0 :(得分:1)

你可以写这样的正则表达式 -

"\w*[\u4e00-\u9fff]+[\u4e00-\u9fff\w]*"

答案 1 :(得分:0)

如果要匹配任何包含任何中文字符的文本,可以在编译的正则表达式对象上使用search(..)方法。

import re

words = ["我很nice", "我n很i你c好e", "你好", "hello", "好", "abcd", "ㄱㄴ"]

regexp = re.compile(r'[\u4e00-\u9fff]')

for word in words:
    if regexp.search(word):
        print(word)

# prints:
# 我很nice
# 我n很i你c好e
# 你好
# 好