简单的正则表达式编程问题

时间:2009-10-08 02:20:57

标签: regex yahoo-pipes

我正在使用Yahoo Pipes来获取Twitter提要并过滤掉信息。管道的正则表达式函数是用________迭代替换__________。

我的例子是:

Testbedots: happy "twins"

我正在尝试找到一个正则表达式字符串,它将选择除双引号内的所有内容。我假设只有一套报价。在正则表达式的替换方面,我看到人们使用$ 1,$ 2,$ 3来替换在regex函数的第一部分中被识别为变量的东西。我的想法是拉出单词twins,或引号之间的任何内容,并让它替换整行。

有什么建议吗?我显然是regex的新手,但是已经阅读了几个小时的在线教程而没有取得任何进展。

感谢您的帮助,

斯凯勒

4 个答案:

答案 0 :(得分:1)

在Yahoo Pipes中,您可以使用此表达式将整行替换为引用文本:

^.*"(.*)".*$

并将其替换为

$1

对于你的例子,它会用双胞胎取代 Testbedots:happy“twins”

我认为文本中总是有正好两个引号(“)

另请注意,您的问题有点令人困惑。你说你想要一个表达式“,它将选择除双引号内的所有内容”。这听起来像你想要的整行,但引用的文字。

答案 1 :(得分:0)

试试这个正则表达式

(\w+:.*?) "

这将“在'之前得到一个词:''字符和空格前面的最大字符序列后跟双引号”

答案 2 :(得分:0)

不确定Pipes的语法,但通常使用perl兼容的正则表达式语法,我认为你可以做类似的事情

s/[^"]*"([^"]+)"[^"]*/$1/

答案 3 :(得分:0)

我可能会将正则表达式写成:

/"([^"]*)"/

换句话说,在双引号处开始匹配,匹配非双引号字符,直到你得到另一个双引号。括号表示您感兴趣的内容。如果您想要至少一个字符(空字符串不起作用),请输入 + 而不是*****。

这会将您感兴趣的位置为1美元或者您的特定语法用于第一次捕获的匹配。