使用正则表达式

山姆

我有一个字符串,我需要捕获第一个元素。

s = extra-root, May 15, 2024, Entry, abcd: efgh

我这样做,

print s.split(",")[0]

但是,有什么方法可以使用re来获取带逗号的字符串的第一个元素吗?我要“加根”。

阿维纳什·拉吉(Avinash Raj)

您可以将常规分割函数与if条件一起使用。如果您要使用正则表达式,那么re.search最好的选择是返回第一个匹配项。

>>> s = 'extra-root, May 15, 2024, Entry, abcd: efgh, ds:sd'
>>> [i for i in s.split(',') if ':' in i][0]
' abcd: efgh'
>>> next(i for i in s.split(',') if ':' in i)
' abcd: efgh'

或者

re.search(r'[^,]*:[^,]*', s).group()
  • [^,]*匹配任何字符,但不匹配,,重复零次或多次。
  • : 匹配一个冒号。
  • [^,]*匹配任何字符,但不匹配,,重复零次或多次。

更新:

获取逗号分隔的字符串中的第一个元素。

re.search(r'^[^,]*', s).group()
  • ^ 开始
  • [^,]*任何字符,但不包括逗号,零次或多次。现在,它应该与一个空字符串匹配(如果开头存在的话),但是如果您使用+它,它将不会捕获该空字符串。因为+期望至少一个字符存在。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章