[erlang-questions] Problems with re:replace/4

Paul Burt paul.burt@REDACTED
Fri Jul 22 10:11:31 CEST 2011


Antoine,

thanks very much, using \\N works as expected.

Cheers,
Paul


On 22 July 2011 09:05, Antoine Koener <antoine.koener@REDACTED> wrote:
> Why using 'named matches ' instead of \\1 ?
> since you use ( ) in the search motif ?
>
>
>
> On 22 juil. 2011, at 09:56, Paul Burt <paul.burt@REDACTED> wrote:
>
>> Sadly not, no. I tried that.
>>
>> The replacement string simply returns the literal string "\k<mention>"
>> or "\\k<mention>" no matter how many backslashes I put in!
>>
>> Cheers,
>> Paul
>>
>>
>> On 22 July 2011 08:51, Antoine Koener <antoine.koener@REDACTED> wrote:
>>> Whenever you deal with re module and the \ character, try \\ instead.
>>>
>>> There's 2 levels of filtering.
>>>
>>> Maybe this will help :))
>>>
>>>
>>>
>>> On 22 juil. 2011, at 09:39, Paul Burt <paul.burt@REDACTED> wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm a newcomer to Erlang and am interested in writing some helper
>>>> functions to parse and manipulate responses from the Twitter API for
>>>> use in a web application.
>>>>
>>>> What I would like to do is replace "@mention" and "#hashtag" with HTML
>>>> markup as follows:
>>>>
>>>> @mention --> <a href="http://twitter.com/mention">@mention</a>
>>>> #hashtag --> <a href="http://search.twitter.com/search?tag=hashtag">#hashtag</a>
>>>>
>>>> In other words transform Twitter @mentions and #hashtags into clickable links.
>>>>
>>>> I have the basic structure of a function (tweetify/1) to do this
>>>> below. The ???? represent where I'm running into trouble:
>>>>
>>>> tweetify(Input) ->
>>>>    Replacements = [
>>>>        {"@(?<mention>\\w+)", "<a href=\"http://twitter.com/????\">&</a>"},
>>>>        {"#(?<hashtag>\\w+)", "<a
>>>> href=\"http://search.twitter.com/search?tag=????\">&</a>"}
>>>>    ],
>>>>    lists:foldl(fun({RE, Replacement}, Tweet) ->
>>>>                      re:replace(Tweet, RE, Replacement, [global,
>>>> {return, binary}])
>>>>                  end, Input, Replacements).
>>>>
>>>> Whilst I understand that the token "&" will insert _everything_
>>>> matched by the regular expression (i.e. @mention and #hashtag
>>>> respectively), how do I use the named tags in the replacement string?
>>>> In other words, how do I get hold of \k<mention> and \k<hashtag> in
>>>> the PCRE idiom and use them in the replacement string?
>>>>
>>>> Thanks in advance for any assistance/pointers.
>>>>
>>>> -Paul
>>>> _______________________________________________
>>>> erlang-questions mailing list
>>>> erlang-questions@REDACTED
>>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list