python - 使用正则表达式

标签 python regex

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

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/

相关文章:

python - BeautifulSoup 附加

Python numpy 按字符串列的值拆分 csv 文件

r - 如何在 R 中的整个数据帧上使用正则表达式

Ruby 正则表达式\1 对 gsub 意味着什么

Python SVM 设置具有序列错误的数组元素

python - 在 tensorflow 中恢复模型,尝试使用未初始化的值变量错误消息

python - Scrapy 跟随与正则表达式匹配的链接

javascript - MQTT 主题和唯一性问题

javascript - 正则表达式来屏蔽 IBAN

python - 打开特定位置的 Windows 资源管理器