鱼C论坛

 找回密码
 立即注册
查看: 1258|回复: 4

[已解决]用python对表格进行标注处理

[复制链接]
发表于 2021-11-2 11:14:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
判断表格的条件如下
1、表中的属性字段的中文名称。只能包含中文、英文字母、数字、左右括号、中划线和下划线,且以中文或英文字母开头。
2、表中的属性字段的英文名称。只能包含英文字母、数字和下划线,且以英文字母开头。

然后在后面对应位置标注是中文还是英文,也就是在后面追加一行
如果 是第三行,就在第四行追加上对应的标注,这个要怎么实现

最佳答案
2021-11-2 19:58:54
swanseabrian 发表于 2021-11-2 19:12
是用正则 的 ,用正则去匹配的,按正则去匹配条件的

括号在正则表达式里,属於特殊字符,非常敏感,建议你上网爬文。如果是其他字符就非常简单,如:
  1. import re

  2. chinese = '^[\u4e00-\u9fa5]{0,}$'
  3. alphabet = '^[A-Za-z]+$'
  4. digit = '^[0-9]+$'
  5. underscore = '^[_]+$'
  6. other = '^[-]+$'

  7. string = input()

  8. for s in string:
  9.     if re.match(chinese, s):
  10.         print(f"{s} 是中文")
  11.     elif re.match(alphabet, s):
  12.         print(f"{s} 是英文字母")
  13.     elif re.match(digit, s):
  14.         print(f"{s} 是数字")
  15.     elif re.match(other, s):
  16.         print(f"{s} 是中划线")
  17.     elif re.match(underscore, s):
  18.         print(f"{s} 是下划线")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-2 18:26:37 | 显示全部楼层
  1. string = input()

  2. for s in string:
  3.     try:
  4.         if int(ascii(s)[3:-1], 16) in range(19968, 40870):
  5.             print(f"{s} 是中文")
  6.     except:
  7.         if s.isalpha():
  8.             print(f"{s} 是英文字母")
  9.         elif s.isdigit():
  10.             print(f"{s} 是数字")
  11.         elif s in ['(', ')', '{', '}', '[', ']']:
  12.             print(f"{s} 是括号")
  13.         elif s == '-':
  14.             print(f"{s} 是中划线")
  15.         elif s == '_':
  16.             print(f"{s} 是下划线")
  17.         continue
复制代码
  1. 中文字幕abcd1234__---
复制代码
  1. 中 是中文
  2. 文 是中文
  3. 字 是中文
  4. 幕 是中文
  5. a 是英文字母
  6. b 是英文字母
  7. c 是英文字母
  8. d 是英文字母
  9. 1 是数字
  10. 2 是数字
  11. 3 是数字
  12. 4 是数字
  13. _ 是下划线
  14. _ 是下划线
  15. - 是中划线
  16. - 是中划线
  17. - 是中划线
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-2 19:12:52 | 显示全部楼层

是用正则 的 ,用正则去匹配的,按正则去匹配条件的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-2 19:58:54 | 显示全部楼层    本楼为最佳答案   
swanseabrian 发表于 2021-11-2 19:12
是用正则 的 ,用正则去匹配的,按正则去匹配条件的

括号在正则表达式里,属於特殊字符,非常敏感,建议你上网爬文。如果是其他字符就非常简单,如:
  1. import re

  2. chinese = '^[\u4e00-\u9fa5]{0,}$'
  3. alphabet = '^[A-Za-z]+$'
  4. digit = '^[0-9]+$'
  5. underscore = '^[_]+$'
  6. other = '^[-]+$'

  7. string = input()

  8. for s in string:
  9.     if re.match(chinese, s):
  10.         print(f"{s} 是中文")
  11.     elif re.match(alphabet, s):
  12.         print(f"{s} 是英文字母")
  13.     elif re.match(digit, s):
  14.         print(f"{s} 是数字")
  15.     elif re.match(other, s):
  16.         print(f"{s} 是中划线")
  17.     elif re.match(underscore, s):
  18.         print(f"{s} 是下划线")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-2 20:00:13 | 显示全部楼层
swanseabrian 发表于 2021-11-2 19:12
是用正则 的 ,用正则去匹配的,按正则去匹配条件的

兄弟,如果对你有帮助,请给最佳解答,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-10 23:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表