Regex 多结尾正则表达式
我有这样一个熊猫数据框:Regex 多结尾正则表达式,regex,python-3.x,pandas,Regex,Python 3.x,Pandas,我有这样一个熊猫数据框: idx name 1 "NM_014855.2(AP5Z1):c.80_83delGGATinsTGCTGTAAACTGTAACTGTAAA (p.Arg27_Ala362delinsLeuLeuTer)" 2 "NM_014630.2(ZNF592):c.3136G>A (p.Gly1046Arg)" 3 "NM_000410.3(HFE):c.892+48G>A" 4 "NC_000014.9:g.(31394019_31414
idx name
1 "NM_014855.2(AP5Z1):c.80_83delGGATinsTGCTGTAAACTGTAACTGTAAA (p.Arg27_Ala362delinsLeuLeuTer)"
2 "NM_014630.2(ZNF592):c.3136G>A (p.Gly1046Arg)"
3 "NM_000410.3(HFE):c.892+48G>A"
4 "NC_000014.9:g.(31394019_31414809)_(31654321_31655889)del"
我需要提取':'
字符后面的内容,直到出现以下任一情况:
df.str.extract(r"\):(.*) \(|\n")
- (“
“del”
{字符串结尾}
df.str.extract(r"\):(.*) \(|\n")
但这并不适用于所有情况
如何正确指定所需的条件?使用惰性匹配
*?
来最小化*
将捕获的数量,然后指定要查找的停止条件:
df.str.extract(r":(.*?)(?:\(|del|$)")
正则表达式通常匹配可能最长的字符串,但
?
会将其切换为匹配可能最短的字符串。使用延迟匹配*?
来最小化*
将捕获的量,然后指定要查找的停止条件:
df.str.extract(r":(.*?)(?:\(|del|$)")
正则表达式通常匹配可能最长的字符串,但?
将其切换为匹配可能最短的字符串。正则表达式通常匹配可能最长的字符串是错误的语句。贪婪量词使模式匹配到后续子模式的最右端,而惰性量词则使模式匹配到最右端ke模式匹配最左边的出现(首次发现)。正则表达式通常匹配最长的字符串是错误的语句。贪婪量词使模式匹配后续子模式的最右边出现,惰性量词使模式匹配最左边的出现(首次发现)。