亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

盡管歌詞字符串中存在模式,但正則表達式錯誤顯示一個空列表

盡管歌詞字符串中存在模式,但正則表達式錯誤顯示一個空列表

拉風的咖菲貓 2022-11-01 15:44:19
import relyrics = '''Twelve drummers drumming, eleven pipers pipingTen lords a leaping, nine ladies dancing, eight maids a milkingSeven swans a swimming, six geese a laying, five gold ringsFour calling birds, three French hensTwo turtle doves and a partridge in a pear tree'''xmasReExp = re.compile(r'\d+\s\w+')print(xmasReExp.findall(lyrics))
查看完整描述

2 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

如果我理解正確,您想在文本中找到用單詞寫的數字lyrics。由于 RegEx 無法理解一個單詞,因此您需要先解決該問題。為此,您可以:

  • 創建從單詞到數字的映射

  • 在文本上應用映射

  • 在新文本上使用正則表達式,以獲取數字

樣本

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']


查看完整回答
反對 回復 2022-11-01
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

結果是正確的,即一個空列表。\d表示數字,并且您在lyrics.



查看完整回答
反對 回復 2022-11-01
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號