用于在Python中第一个Dot之前查找字符串的正则表达式模式

时间:2018-02-06 18:54:43

标签: python regex

我需要一个正则表达式模式才能在第一个点之前抓取字符串:

 google.com.com
 yahoo.com
 192.168.1.4

我需要一个给谷歌和雅虎的正则表达式,但我的模式也抓取IP地址。我的正则表达式是r'(.*)\.(.*)

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

我不确定行开头的空格是否有任何意义,所以我在this regex中考虑了它们:

(?:^|(?<=\s))[\w-]+(?=.[a-zA-Z])

它匹配行的开头或空格后面的子字符串,后跟一个点,然后是一个字母(而不是一个数字)。

答案 1 :(得分:0)

我假设您提供的文字是一个带换行符的字符串。在这种情况下,这将是将结果拉入列表的快速解决方案。

re.findall(r'^\s*([a-zA-Z]+)\.', str, re.MULTILINE)

re.MULTILINE通过允许使用&#39; ^&#39;来简化事情。匹配每行的开头。

这会产生['google', 'yahoo']

有关正则表达式的说明,请参阅下面的详细版本。 (也适用于记录目的)

re.findall(r'''
    ^           # beginning of each line (multiline mode)
    \s*         # zero or more whitespace characters
    ([a-zA-Z]+) # captures one or more characters a-z case-insensitive (just in case)
    \.          # matches '.'
    ''', str, re.MULTILINE | re.VERBOSE)