【问题标题】:Need to find element just before regex match element via python需要通过python在正则表达式匹配元素之前找到元素
【发布时间】:2017-09-05 19:07:28
【问题描述】:

输入如下:

"dinem-5554\tlee"

我需要进行正则匹配才能得到\tlee)之前的值,即dinem-5554。这是我尝试过的:

m = re.findall(r'(\tlee)',a)[0]
if m:
    print m
else:
    print "none"

【问题讨论】:

  • 试试re.findall("(.+?)\tlee",a)
  • 定义“之前的值”。字符串"dinem-5554 lee" 中应该匹配什么? “dinem-5554”? “5554”? “4”?空间字符?还有什么?
  • 你也可以试试(.*)\tlee,参考抓包组$1
  • 我一直想知道?在正则表达式中是什么意思。
  • 在我的评论中,它的意思是“非贪婪”。避免匹配 \tlee,在第一个 \tlee 处停止。

标签: python regex python-2.x


【解决方案1】:

您不需要使用正则表达式。使用内置的split method of str

my_string = "dinem-5554\tlee"
groups = my_string.split('\tlee', 1)

if len(groups) > 0:
    print groups[0]
else:
    print 'none'

或者如果你的意思是在制表符处分割:

groups = my_string.split('\t', 1)

请注意,第二个参数决定了拆分的次数。如果my_string 包含多个制表符,则只会在第一个制表符处拆分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2016-08-14
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多