Skip to main content
 首页 » 编程设计

python之如何将 Python 中的正则表达式匹配到某个字符,如果不匹配则返回 None

2024年08月14日38qq78292959

我想知道是否可以将正则表达式匹配到特定字符 (':'),但要避免像 [^:]* 这样的否定逻辑表达式,因为如果没有遇到匹配,我希望它返回 None .查看预期的示例:

import re 
string='AbcS:sdaf' 
pattern='whatever needed' # match all up to :  
re.search(pattern, string).group() 
 
'AbcS' 
 
string2='AbcSsdaf' 
pattern2='whatever needed' # match all up to :  
re.search(pattern2, string2).group() 
 
None 

在其他帖子中,我看到一些提到 pattern='[^:]*' 的答案,但这不是我想要的,因为如果字符串中没有 ':',则返回所有字符串。

谢谢大家

请您参考如下方法:

试试这个正则表达式:

^(?=.*:)[^:]* 

Click for Demo

解释:

  • ^ - 断言字符串的开头
  • (?=.*:) - 正面前瞻以确保该行包含 :
  • [^:]* - 匹配出现次数超过 0 次的任何不是 :
  • 的字符