我想知道是否可以将正则表达式匹配到特定字符 (':'),但要避免像 [^:]* 这样的否定逻辑表达式,因为如果没有遇到匹配,我希望它返回 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='[^:]*' 的答案,但这不是我想要的,因为如果字符串中没有 ':',则返回所有字符串。
谢谢大家
请您参考如下方法:
试试这个正则表达式:
^(?=.*:)[^:]*
解释:
^- 断言字符串的开头(?=.*:)- 正面前瞻以确保该行包含:[^:]*- 匹配出现次数超过 0 次的任何不是: 的字符
