鱼C论坛

 找回密码
 立即注册
查看: 2558|回复: 7

[已解决]请问怎么检索文本内的罗马字符呀

[复制链接]
发表于 2018-5-12 14:36:05 | 显示全部楼层 |阅读模式

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

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

x
第一步:是我网上找到有匹配功能的一段代码:

import re
tt = "Tina is a good girl, she is cool, clever, and so on..."
rr = re.compile(r'\w*ir\w*')
print(rr.findall(tt))   #查找所有包含'ir'的单词

360截图20180512142724569.jpg

这个代码运行结果是正常的

第二步:我修改了一下之后,想要实现匹配一串罗马数字中的“I”
import re
tt = ["I","II","III","V1","V2","V3","V4","V5","V6","aVF","aVL","aVR"]
rr = re.compile(r'\w*1\w*)
print(rr.findall(tt))

结果报错了,显示如下:

360截图20180512143423738.jpg

请问要怎么修改才能让它匹配到罗马字符的“I”呀?

是罗马数字不能匹配吗?
最佳答案
2018-5-14 17:44:49
合末lsj 发表于 2018-5-13 16:28
您好,我大致想实现这样的功能:
把所有可能出现的字符串汇成一个列表:tt=["I","II","III","V1","V2" ...
  1. tt = ["I","II","III","V1","V2","V3","V4","V5","V6","aVF","aVL","aVR"]
  2. test = ['I', 'aVL', 'V2', 'V4']
  3. myop = ['0']*len(tt)

  4. for i in range(len(tt)):
  5.     if tt[i] in test:
  6.         myop[i] = '1'

  7. print(''.join(myop))
复制代码


是这样么?但这个需求和正则匹配罗马字符没关系呀
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-5-12 14:43:46 | 显示全部楼层
hi

rr = re.compile(r'\w*1\w*)   这行代码有问题,缺失'   ,应该为 rr = re.compile(r'\w*1\w*')  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-12 14:45:52 | 显示全部楼层
楼主是想实现下面的效果吗
  1. import re
  2. tt = ' "I","II","III","V1","V2","V3","V4","V5","V6","aVF","aVL","aVR" '
  3. rr = re.compile(r'\w*I\w*')
  4. print(rr.findall(tt))
复制代码

['I', 'II', 'III']
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-13 16:28:21 | 显示全部楼层
thexiosi 发表于 2018-5-12 14:45
楼主是想实现下面的效果吗

['I', 'II', 'III']


您好,我大致想实现这样的功能:
把所有可能出现的字符串汇成一个列表:tt=["I","II","III","V1","V2","V3","V4","V5","V6","aVF","aVL","aVR"]
规定:如果我检测到字符串里面有I,则打印为1,如果检测到字符串里面没有的字符,则打印为0
比如:给出一行字符串:I,aVL,V2,V4
得到的打印结果就是:100010100010
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 11:07:00 | 显示全部楼层
合末lsj 发表于 2018-5-13 16:28
您好,我大致想实现这样的功能:
把所有可能出现的字符串汇成一个列表:tt=["I","II","III","V1","V2" ...

不好意思,这个就不太熟悉了,无法帮到你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-14 12:41:49 | 显示全部楼层
thexiosi 发表于 2018-5-14 11:07
不好意思,这个就不太熟悉了,无法帮到你

没事,谢谢您!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-14 17:44:49 | 显示全部楼层    本楼为最佳答案   
合末lsj 发表于 2018-5-13 16:28
您好,我大致想实现这样的功能:
把所有可能出现的字符串汇成一个列表:tt=["I","II","III","V1","V2" ...
  1. tt = ["I","II","III","V1","V2","V3","V4","V5","V6","aVF","aVL","aVR"]
  2. test = ['I', 'aVL', 'V2', 'V4']
  3. myop = ['0']*len(tt)

  4. for i in range(len(tt)):
  5.     if tt[i] in test:
  6.         myop[i] = '1'

  7. print(''.join(myop))
复制代码


是这样么?但这个需求和正则匹配罗马字符没关系呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-5-15 10:21:10 | 显示全部楼层
tsembrace 发表于 2018-5-14 17:44
是这样么?但这个需求和正则匹配罗马字符没关系呀

你好,我提问的只是做的一部分内容,现在做的东西整体已经有思路了。谢谢您的回答!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-11 13:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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