[英]How to find words in a string containing at least one underscore and capital letters
[英]how to find capital letters in a string in python
我想在任何位置的字符串中找到大写字母,我希望如果字符串在字符串中的任何位置上都包含大写字母,则应该打印该字符串“ 1”,并且如果字符串中不包含任何大写字母应该在该字符串上打印“ 0”的任何位置。 为此,我编写了python代码,但无法正常工作
file='C:/Python26/test.txt'
f=open('letters.txt','w')
pattern='[A-Z+]'
with open(file, 'r') as rf:
for word in rf:
for i in word.split():
if word[0].isupper(): ## finding letters starting with uppercase letters
f.write(word.strip("\n")+"\t"'1'"\n");
elif word.isupper(): ## finding string containing all capital letters
f.write(word.strip("\n")+"\t"'1'"\n");
elif re.search(pattern, word): ## finding string containing capital letter at any position
f.write(word.strip("\n")+"\t"'1'"\n");
else:
f.write(word.strip("\n")+"\t"'0'"\n");
f.close()
我的示例数据是这样的
Src
单抗
32DC32
P50
的
激活
风扇
。
NFκB
IL23RE
猫
。
但是我的输出是这样的
源1
单克隆抗体1
32DC32 1
P50 1
1
激活0
风扇0
。 0
1个
NFκB1
IL23RE 0
猫0
。
产生错误的结果。 它不能满足空白要求,标题为“ 1”,由于这种选择,句点(。)既没有获得“ 0”也没有获得“ 1”的任何标签。
只需使用re.search
而不是re.match
因为re.match
尝试从字符串的开头进行匹配。
import re
file='infile'
f=open('outfile','w')
pattern='[A-Z]'
with open(file, 'r') as rf:
for word in rf:
if re.search(pattern, word):
f.write(word.strip() + " 1\n")
else:
f.write(word.strip() + " 0\n")
f.close()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.