regex 使用正则表达式捕获“^1234:“和“,^5678:“之间的文本[重复]

ftf50wuq  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(103)

此问题已在此处有答案

Regex Match all characters between two strings(16个回答)
15天前关闭。
我正在尝试创建一个正则表达式查询来提取字符之间的所有内容

^1234:

和/或

, ^5678:

我尝试了以下方法,但不起作用。我走对路了吗?

^(\^1234),(\^5678)$

示例文本:

54:16812344266, ^1234:iwantthistext, ^5678:idontwantthis, ^0000: idontwantthiseither
qcuzuvrc

qcuzuvrc1#

如果你使用sed,你可以这样做:

$ echo '54:16812344266, ^1234:iwantthistext, ^5678:idontwantthis, ^0000: idontwantthiseither' | sed 's/.*\^1234:\(.*\), \^5678.*/\1/'
iwantthistext

您希望使用()捕获字符串之间的匹配。然后用捕获文本替换完整值。
第一个.*匹配^1234之前的所有内容,第二个.*匹配^5678之后的所有内容。^需要用反斜杠转义,这样sed就不会使用它进行插值。

bnl4lu3b

bnl4lu3b2#

例如:\^1234(.*?), \^5678
输入54:16812344266, ^1234:iwantthistext, ^5678:idontwantthis, ^0000: idontwantthiseithere将输出:
https://regex101.com/r/22Fplx/1

相关问题