从python中的字符串获取字符
我有一个由多个块组成的文本文件,如下图所示:从python中的字符串获取字符,python,regex,Python,Regex,我有一个由多个块组成的文本文件,如下图所示: TestVar 00000000 WWWWWW 222.222 222.222 222.222 UNKNOWN ,,,,,,,, ,,,,,, ,,,,,, 我想获得以下输出: 每个部分的长度始终为8个字符(例如TestVar,00000000) 从以testvar开头的每一行中,我希望代码返回: WWWWWW_00000000 有人能帮我吗?我以前用过regex,但从来没有用过python,我对这两种语言都很陌生 感谢使用regex模式^
TestVar 00000000 WWWWWW 222.222 222.222 222.222
UNKNOWN ,,,,,,,, ,,,,,, ,,,,,,
我想获得以下输出:
每个部分的长度始终为8个字符(例如TestVar,00000000)
从以testvar开头的每一行中,我希望代码返回:
WWWWWW_00000000
有人能帮我吗?我以前用过regex,但从来没有用过python,我对这两种语言都很陌生
感谢使用regex模式
^TestVar\s+(\d{8})\s+(\s+)您可以通过>>
import re
p = re.compile('^TestVar\s+(\d{8})\s+(\S+)')
m = p.match('TestVar 00000000 WWWWWW 222.222 222.222 222.222')
if m:
print 'Match found: ', m.group(2) + '_' + m.group(1)
else:
print 'No match'
测试这个演示
要查找多行input
string中的所有匹配项,请使用:
p = re.compile("^TestVar\s+(\d{8})\s+(\S+)", re.MULTILINE)
m = p.findall(input)
要了解有关使用Python的正则表达式的更多信息,请参见使用正则表达式模式的^TestVar\s+(\d{8})\s+(\s+)
您可以通过>>
import re
p = re.compile('^TestVar\s+(\d{8})\s+(\S+)')
m = p.match('TestVar 00000000 WWWWWW 222.222 222.222 222.222')
if m:
print 'Match found: ', m.group(2) + '_' + m.group(1)
else:
print 'No match'
测试这个演示
要查找多行input
string中的所有匹配项,请使用:
p = re.compile("^TestVar\s+(\d{8})\s+(\S+)", re.MULTILINE)
m = p.findall(input)
要了解有关使用Python的正则表达式的更多信息,请参见假设您不希望我们为您编写代码
这里有一个非常具体的链接
请记住,您可能希望使用findall()。。。
也可以使用r'编写代码,而不需要经常使用反斜杠
您可能希望向我们展示您已经编写但尚未运行的代码,以便我们能够更好地帮助您
gl假设您不希望我们为您编写代码
这里有一个非常具体的链接
请记住,您可能希望使用findall()。。。
也可以使用r'编写代码,而不需要经常使用反斜杠
您可能希望向我们展示您已经编写但尚未运行的代码,以便我们能够更好地帮助您
不带regexp的总账:
lines = ["TestVar 00000000 WWWWWW 222.222 222.222 222.222",
"UNKNOWN ,,,,,,,, ,,,,,, ,,,,,,"]
print [toks[2].strip(' ')+'_'+toks[1] for toks in \
[[line[i:i+8] for i in xrange(0,len(line),8)] for line in lines] \
if toks[0] == 'TestVar ']
没有regexp:
lines = ["TestVar 00000000 WWWWWW 222.222 222.222 222.222",
"UNKNOWN ,,,,,,,, ,,,,,, ,,,,,,"]
print [toks[2].strip(' ')+'_'+toks[1] for toks in \
[[line[i:i+8] for i in xrange(0,len(line),8)] for line in lines] \
if toks[0] == 'TestVar ']
您提到了该模式的多次出现,在这种情况下,您可以使用:
您提到了该模式的多次出现,在这种情况下,您可以使用:
你真的需要regexp吗?你能把每一行分开,取第二和第三个元素吗?@PierreGM-Regex在这里很容易使用,因为OP还需要检查字符串是否以TestVar开头,这样就可以一步完成……你真的需要regexp吗?你能把每一行分开,取第二和第三个元素吗?@PierreGM-Regex在这里很容易使用,因为OP还需要检查字符串是否以TestVar开头,这样就可以一步完成……首先非常感谢你。有人能解释一下如何在python代码中使用正则表达式来检查字符串吗?首先非常感谢。有人能解释一下如何在python代码中使用正则表达式来检查字符串吗?