我有一个字符串,我需要捕获第一个元素。
s = extra-root, May 15, 2024, Entry, abcd: efgh
我正在这样做,
print s.split(",")[0]
但是,有没有办法使用 re 来获取带有逗号的字符串的第一个元素?我想要“额外的根”。
最佳答案
您可以使用带有 if 条件的常规 split 函数。如果您想要正则表达式,那么 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()
^
开始[^,]*
任何字符,但不包括逗号,零次或多次。现在,如果空字符串存在于开头,它应该匹配空字符串,但如果您使用+
那么它不会捕获该空字符串。因为+
期望至少存在一个字符。
关于python - 使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37519105/