python 需要提取字符串中文及中文之间的标点字符 “sdf)*&^%jlk,.,sd中文——2384中文sldfe#$%^&*ejfk”

Python028

python 需要提取字符串中文及中文之间的标点字符 “sdf)*&^%jlk,.,sd中文——2384中文sldfe#$%^&*ejfk”,第1张

import re

input = r'sdf)*&^%jlk,.,sd中文——2384中文sldfe#$%^&*ejfk'

words = re.findall(r'[\u4E00-\u9FA5]+.*[\u4E00-\u9FA5]+', input)

print (words)

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

import os

#已知文件名的情况下,可以用这个函数

def getFileInfo(filepath):

info = {}

if os.path.isfile(filepath):

info['TimeCreated'] = os.path.getctime(filepath)

info['TimeModified'] = os.path.getatime(filepath)

info['Size'] = os.path.getsize(filepath)

return info

# 如果只知道文件根目录,但是不知道具体的文件路径,

# 可以先用os.listdir获得文件和文件夹列表

#-------------------分界线----------------------

# 这是回答你的第二个问题。如何找到一个字符串中指定两个字符中间的字符串

# 这里用的是正则表达式

import re

special = "*.?+$^[](){}|\/" #正则表达式中会出现的特殊字符

# 输入参数为原始字符,leftmark表示左边的分隔符号,rightmark表示右边的分隔符号

#函数返回在leftmark和rightmark中间的内容,可能匹配满足不止一次,没有找到就返回空

def matchpattern(str1,leftmark,rightmark):

lf,rt = leftmark,rightmark

#如果需要匹配的字符在正则表达式中时特殊字符,需要给予转义

if leftmark in special:

lf = '\%s'%leftmark

if rightmark in special:

rt = '\%s'%rightmark

pattern = re.compile(r''+lf + '.{0,}'+ rt)

matched = re.findall(pattern,str1)

result = []

if matched:

#如果匹配成功了,就去头去尾,直接取中间的部分

for m in matched:

s = m.replace(leftmark, '')

s = s.replace(rightmark, '')

result.append(s)

return result

else:

return None

if __name__ == '__main__':

print matchpattern("#abcsdfs%sdfsdf*",'%','*')