需要正则表达式匹配来查找和替换模式

时间:2017-07-21 20:19:27

标签: ruby

这是我的字符串:

string = "abcdef.sfdsf_3asafds-fdsfd;info=<http://www.amazon.com:8080/abc/ads/asdf>;tag=abc123;val=hello"

我的目标是使用ruby中的gsub / sub替换:

info=<http://www.amazon.com:8080/abc/ads/asdf>

使用:

info=<private-url>

我尝试了一些使用regexp的尝试,但它们都是错误的。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

执行此操作的简单正则表达式可以是/<(.*?)>/

这将匹配< >内的所有内容(包括< >信号)。

请注意,这将匹配字符串中的第一个匹配项。

您可以在question上查看正则表达式的说明。

你也可以在Rubular上查看它,这是一个在飞行中测试ruby正则表达式的好工具。

为了替换Ruby中的匹配结果,您可以尝试类似的内容 2.4.0 :024 > string.sub(/<(.*?)>/, '<your_url>') => "abcdef.sfdsf_3asafds-fdsfd;info=<your_url>;tag=abc123;val=hello"

这可用于此字符串,但如果字符串上有更多< >信号,则需要根据使用情况进行调整。