Python 显示空列表时出现正则表达式错误,尽管字符串中存在该模式
结果是正确的,即空列表Python 显示空列表时出现正则表达式错误,尽管字符串中存在该模式,python,regex,re,Python,Regex,Re,结果是正确的,即空列表\d表示数字,您在歌词中没有匹配的模式如果我理解正确,您希望查找文本歌词中用单词书写的数字。由于正则表达式无法理解一个单词,因此需要首先解决这个问题。为此,您可以: 创建从单词到数字的映射 在文本上应用映射 在新文本上使用regex,以获取数字 样品 出来 \d+是否应该与数字单词12、5等匹配?它只匹配数字字符串,如12,5,等等。您介意使用代码块,以便更容易阅读您的代码吗?您的预期输出是什么?虽然歌词字符串中显然没有这种模式,对吗?到底是什么问题?你做过调试吗?请看
\d
表示数字,您在歌词中没有匹配的模式如果我理解正确,您希望查找文本歌词中用单词书写的数字。由于正则表达式无法理解一个单词,因此需要首先解决这个问题。为此,您可以:
- 创建从单词到数字的映射
- 在文本上应用映射
- 在新文本上使用regex,以获取数字
样品
出来
\d+
是否应该与数字单词12
、5
等匹配?它只匹配数字字符串,如12
,5
,等等。您介意使用代码块,以便更容易阅读您的代码吗?您的预期输出是什么?虽然歌词字符串中显然没有这种模式,对吗?到底是什么问题?你做过调试吗?请看,。你的回答虽然在技术上是正确的,但没有帮助。
import re
lyrics = '''Twelve drummers drumming, eleven pipers piping
Ten lords a leaping, nine ladies dancing, eight maids a milking
Seven swans a swimming, six geese a laying, five gold rings
Four calling birds, three French hens
Two turtle doves and a partridge in a pear tree
'''
xmasReExp = re.compile(r'\d+\s\w+')
print(xmasReExp.findall(lyrics))
import re
# mapping
word_digit_map = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5,
"six": 6,
"seven": 7,
"eight": 8,
"nine": 9,
"ten": 10,
"eleven": 11,
"twelve": 12,
}
lyrics = '''Twelve drummers drumming, eleven pipers piping
Ten lords a leaping, nine ladies dancing, eight maids a milking
Seven swans a swimming, six geese a laying, five gold rings
Four calling birds, three French hens
Two turtle doves and a partridge in a pear tree
'''
# apply mapping
for word in word_digit_map.keys():
lyrics = lyrics.lower().replace(word, str(word_digit_map[word]))
# Use regex
xmasReExp = re.compile(r'\d+')
print(xmasReExp.findall(lyrics))
['12', '11', '10', '9', '8', '7', '6', '5', '4', '3', '2']