猿问

使用正则表达式从“1.hello”获取“hello”

我刚刚学习正则表达式,但无法从列表中获取单词

从这样的列表中:

[ "1. hello - jeff", "2. gello - meff", "3. fellow - gef", "12. willow - left"]

我想检索单词:“hello”、“gello”、“fellow”和“willow”

这是到目前为止我的简化代码

for i in [ARRAY OF LISTED WORDS]:
  word = re.findall(r'^((?![0-9]?[0-9]. ))\w+', i)
    print(word)


繁星点点滴滴
浏览 104回答 2
2回答

弑天下

您正在查找数字之间的一个或多个非空格( '\S+'),后跟句点,后跟空格 ( '\d+\.\s'),以及空格后跟短划线 ( '\s-'):pattern = r'\d+\.\s(\S+)\s-' [re.findall(pattern, l)[0] for l in your_list]

德玛西亚99

你的正则表达式模式:pattern = r"""    \d+     # 1 or more digits    \.      # Escaped period character    \s+?    # 1 or more whitespace    (\w+)   # 1 or more alphabetic characters    \s+     # 1 or more whitespace    -       # hyphen    .*      # zero or more of anything besides newline."""字符串列表:words = [ "1. hello - jeff", "2. gello - meff", "3. fellow - gef", "12. willow - left"]for word in words:    # capture results in a variable    # re.X for verbose pattern format.    tmp = re.search(pattern, word, flags = re.X)    # If variable is not None, print results of the first captured group.    if tmp:        print(tmp.group(1))输出:hellogellofellowwillow
随时随地看视频慕课网APP

相关分类

Python
我要回答