Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带devanAgarI的Python正则表达式_Python_Regex_Unicode - Fatal编程技术网

带devanAgarI的Python正则表达式

带devanAgarI的Python正则表达式,python,regex,unicode,Python,Regex,Unicode,考虑以下代码: #! /usr/bin/python # coding: utf-8 # Prerequisite: sudo easy_install regex import regex import sys import collections test = True lines = [] if (test): test_lines = """ अ पु. संस्कृत वर्णमाला का प्रथम वर्ण [विशेषतया तीन दिन तक चलने वाले स

考虑以下代码:

#! /usr/bin/python
# coding: utf-8
# Prerequisite: sudo easy_install regex
import regex
import sys
import collections

test = True

lines = []
if (test):
  test_lines = """
अ पु. संस्कृत वर्णमाला का प्रथम वर्ण [विशेषतया तीन दिन
तक चलने वाले सोम-याग (त्रिरात्र) के प्रथम दिन आज्य
इति”, पञ्च. ब्रा. 2०.14.3।
अंश पु.1 अ. भाग (देवों, पितरों एवं मनुष्यों के लिए नियत)
ऋ.वे. 1०.31.3; अ.वे. 11.1.5;1 ब. पशु-भाग, बौ.श्रौ.सू.
का नाम, ऋ. प्रा. 17.4; निदा.सू. 1०5.2०।
""".split("\n")
  lines = test_lines
else:
  lines = sys.stdin.readlines()

full_text = "\n".join(lines)
full_text = regex.sub(ur'^(\S+)\s+(पु[ .])', '####\g<1>####\g<1> \g<2>', full_text, flags=regex.UNICODE|regex.MULTILINE)
print(full_text)    
#/usr/bin/python
#编码:utf-8
#先决条件:sudo easy_安装正则表达式
导入正则表达式
导入系统
导入集合
测试=真
行=[]
如果(测试):
测试_行=“”
अ पु. संस्कृत वर्णमाला का प्रथम वर्ण [विशेषतया तीन दिन
तक चलने वाले सोम-याग (त्रिरात्र) के प्रथम दिन आज्य
इति”, पञ्च. ब्रा. 2.०.14.3।
अंश पु.1.अ. भाग (देवों, पितरों एवं मनुष्यों के लिए नियत)
ऋ.वे. 1.०.31.3; अ.वे. 11.1.5;1 ब. पशु-भाग, बौ.श्रौ.सू.
का नाम, ऋ. प्रा. 17.4; निदा.सू. 1.०5.2०।
“.split(“\n”)
线=测试线
其他:
lines=sys.stdin.readlines()
全文=“\n”。连接(行)
全文=regex.sub(ur'^(\S+)\S+(पु[.]','###############g\g',全文,flags=regex.UNICODE | regex.MULTILINE)
打印(全文)
我预计上述内容将产生以下输出:

####अ####अ पु. संस्कृत वर्णमाला का प्रथम वर्ण [विशेषतया तीन दिन तक चलने वाले सोम-याग (त्रिरात्र) के प्रथम दिन आज्य इति”, पञ्च. ब्रा. 2०.14.3। ####अंश####अंश पु.1 अ. भाग (देवों, पितरों एवं मनुष्यों के लिए नियत) ऋ.वे. 1०.31.3; अ.वे. 11.1.5;1 ब. पशु-भाग, बौ.श्रौ.सू. का नाम, ऋ. प्रा. 17.4; निदा.सू. 1०5.2०। ####अ####अ पु. संस्कृत वर्णमाला का प्रथम वर्ण [विशेषतया तीन दिन तक चलने वाले सोम-याग (त्रिरात्र) के प्रथम दिन आज्य इति”, पञ्च. ब्रा. 2.०.14.3। ####अंश####अंश पु.1.अ. भाग (देवों, पितरों एवं मनुष्यों के लिए नियत) ऋ.वे. 1.०.31.3; अ.वे. 11.1.5;1 ब. पशु-भाग, बौ.श्रौ.सू. का नाम, ऋ. प्रा. 17.4; निदा.सू. 1.०5.2०।
但是我得到的是不变的文本。

正如@WiktorStribiżew指出的,在处理Unicode文本时,字符串应该是Unicode

您必须使用Python 2,因此请更改:

test_lines = """
致:

另外,对于
stdin
change:

lines = sys.stdin.readlines()
致:


您的输入也应该是Unicode,而不仅仅是模式。请参阅
lines = sys.stdin.readlines()
lines = [line.decode(sys.stdin.encoding) for line in sys.stdin]