鱼C论坛

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

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

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

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

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

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

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

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

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

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

string = input()

for s in string:
    if re.match(chinese, s):
        print(f"{s} 是中文")
    elif re.match(alphabet, s):
        print(f"{s} 是英文字母")
    elif re.match(digit, s):
        print(f"{s} 是数字")
    elif re.match(other, s):
        print(f"{s} 是中划线")
    elif re.match(underscore, s):
        print(f"{s} 是下划线")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

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

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

string = input()

for s in string:
    if re.match(chinese, s):
        print(f"{s} 是中文")
    elif re.match(alphabet, s):
        print(f"{s} 是英文字母")
    elif re.match(digit, s):
        print(f"{s} 是数字")
    elif re.match(other, s):
        print(f"{s} 是中划线")
    elif re.match(underscore, s):
        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, 2025-1-12 20:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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