2016-07-03 118 views
-5

如果字符串的第一行包含給定的「sub」字符串,我想匹配一個字符串。這是可能的蟒蛇使用oneliner正則表達式?python中的條件正則表達式

string="abcd - testing xxx 
foo bar 
end" 

如果字符串FIRSTLINE包含:

"abcd - testing" 

匹配整個字符串:

"abcd - testing xxx 
foo bar 
end" 

的問題是輸出被另一個Python程序,這是我無法控制的讀。

我只能用一個正則表達式ONELINE提供該程序...

謝謝。

+4

你可能不需要一個正則表達式:'my_string.startswith(「ABCD - 測試」)' –

+1

那你試試,你有什麼問題與模式,你試過嗎? –

+0

你的意思是「正則表達式」是由另一個程序讀取的......而不是「輸出」。 「輸出」意味着你指的是匹配的字符串。 – Resonance

回答

0

使用此:

string = """abcd - testing xxx 
foo bar 
end""" 

sub = "abcd - testing" 

def match(string, sub): 
    return string if sub in string.splitlines()[0] else '' 

print match(string, sub) 
  • splitlines()將你的主要字符串分割成線
  • [0]會選擇第一行
  • in將返回true,如果你的子字符串包含在第一行
+0

是否可以在一個oneline正則表達式中拆分字符串? – user3030473

+1

爲什麼你必須使用正則表達式? – Daniel

0

enter image description here

這將工作。

^.*abcd - testing.*\n(?:.*\n?)+$