python中文本字符处理的简单方法记录

今天,跟大家分享一下我做小项目时想出来的文本字符处理的方法,希望能对大家有所帮助。

完整代码:

strings = "我,是‘C|S;D|N!的:程【序】员#M,r&.;P'a#n?_&学?狂"#将字符串设置好

def String_Process(string):#定义一个字符处理函数,设置参数string,是有待处理的字符串。
 print("python使我快乐!!")
 print("未处理的字符串:",string)
 varchar = '‘'“”:#,!【】,&#|?|,&;;?:"'#人为设定字符集合
 ls = []#定义一个列表用于存储拆散的字符
 for s in string:
  ls.append(s)#将字符串拆散存进列表中
 for element in ls:
  if element in varchar:#如果在字符集合内发现,则从列表中删除
   ls.remove(element)
 String = ''#定义字符串
 for l in ls:#将列表中拆散的元素组合回去。
  String = String+l
 print("处理后的字符串:",String)#得到处理结果
String_Process(string=strings)#调用函数,传入实参给形参。

运行结果,如下图:

python中文本字符处理的简单方法记录

对于处理文本字符的思想在代码中已经说明,关于代码的解释在注释中也写出了。我们把它通过函数进行封装,当我们需要处理文本字符的时候,通过调用函数就可以实现文本字符处理了。当然,调用函数处理字符时需要得到string返回值以及注释掉print,因为我们如果是在循环中调用,没必要全部打印一遍,影响视觉对文本的分析。即修改代码如下图:

python中文本字符处理的简单方法记录

对于上面的文本处理代码,我又做了一次更新,可以增加新的字符或者是字符串来更新字符集合,更加方便处理文本中的字符。

改进后的代码,如下图:

strings = "我,是‘C|S;D|N!的:程【序】员#M,r&.;②P'「(a#n」?_&学?狂..."#将字符串设置好

def Process(string):#定义一个字符处理函数,设置参数string,是有待处理的字符串。
  print("python使我快乐!!")
  print("未处理的字符串:",string)
  varchar = '‘'“”:#,!【】,&#|?|,&;;?:"'#人为设定字符集合
  var_ls = []
  for var in varchar:
    var_ls.append(var)
  print("这是当前的字符集合:",var_ls)
  while True:
    want = str(input("是否需要增加新的字符/字符集合?(yes or no)"))
    if want == 'yes':
      add_varchar = str(input("请输入需要增加的新字符/字符集合:"))
      for var in add_varchar:
        var_ls.append(var)
      print("更新后的字符集合:",var_ls)
    elif want == 'no':
      break
    else:
      print("输入有误!!请重试!!")
      continue

  ls = []#定义一个列表用于存储拆散的字符
  for s in string:
    ls.append(s)#将字符串拆散存进列表中
  for element in ls[:]:
    if element in var_ls:#如果在字符集合内发现,则从列表中删除
      ls.remove(element)
    elif element not in var_ls:
      continue
  String = ''#定义字符串
  for l in ls:#将列表中拆散的元素组合回去。
     String = String+l
  print("处理后的字符串:",String)#得到处理结果
Process(string=strings)#调用函数,传入实参给形参。

代码的解释在注释中写了,大家如果对代码不理解可以和我私信探讨。

运行结果,如下图:

python中文本字符处理的简单方法记录

总结