我有一个如下字符串:
s = 'regimen A1 Cycle 3 Day 5 treatment B1 '
我需要做的是将整个字符串替换为C3D5
(第3天第5天)。我想知道如何使用正则表达式?
我试过了:
str_replace(s, '.*Cycle\\s+(\\d+)Day\\s+(\\d+).*', 'C\\1D\\2' )
我得到的是原始字符串。谁能告诉我我做错了什么?有任何优雅的方式吗?
答案 0 :(得分:1)
您的正则表达式已关闭 - 您错过了第一个数字和Day
之间的空格,在这种情况下模式不匹配,因此不会发生替换。尝试:
str_replace(s, '.*Cycle\\s+(\\d+)\\s+Day\\s+(\\d+).*', 'C\\1D\\2' )
# ^^^^
# [1] "C3D5"