git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] gitweb: Better regexp for SHA-1 committag match

From
Ddemerphq <demerphq@gmail.com>
Date
Feb 7, 2009, 13:30 UTC
Message-ID
<9b18b3110902070530s70c93813se529ee7ab69b1f7e@mail.gmail.com>
In-Reply-To
<200902071107.33428.jnareb@gmail.com>
2009/2/7 Jakub Narebski <jnareb@gmail.com>:
Show 22 quoted lines
> On Sat, 7 Feb 2009, demerphq wrote:
>> 2009/2/6 Jakub Narebski <jnareb@gmail.com>:
>>> Dnia piątek 6. lutego 2009 10:49, Rafael Garcia-Suarez napisał:
>>>> 2009/2/6 Jakub Narebski <jnareb@gmail.com>:
>
>>>>> Make SHA-1 regexp to be turned into hyperlink (the SHA-1 committag)
>>>>> to match word boundary at the beginning and the end.  This way we
>>>>> reduce number of false matches, for example we now don't match
>>>>> 0x74a5cd01 which is hex decimal (for example memory address),
>>>>> but is not SHA-1.
>>>>
>>>> Further suggestion: you could also turn the final \b into (\b|\@),
>>>
>>> You meant \b -> \b(?!\@), didn't you?  Word boundary _not_ followed
>>> by '@', and not word boundary _OR_ '@' as you wrote...
>>
>> Since \b(?!\@) is effectively two zero width negative assertions in a
>> row you could simplify by saying:
>>
>>   (?![^\w\@])
>
> I don't know if "sth\b" is effectively "sth(!?[^\w])"... perhaps it is.
Sorry, my bad, that is double negation, I meant (?![\w\@])

On of the ways you can express \b is as: (?:(?<=\w)(?!\w)|(?<=\W)(?!\W)|\A)

But the point here is you are looking for the end of a hex sequence, so you can just use the "end of string" bit of the alternation which is: (?!\w).

Show 7 quoted lines
>>
>> and that way you can easily add the '.' case as well.
>
> We cannot add '.' case, because it there can be legitimate SHA-1 match
> ending sentence, e.g.
>
>     ... at commit 8457bb9e.
/(?<!\w)([a-fA-F0-9]+)(?!(?:\.\w|[\w@]))/
:-)
Yves
-- 
perl -Mre=debug -e "/just|another|perl|hacker/"
Previous: Jakub Narebski
Message 22 of 22 in “webgit highlightes mem adresses as git versions”
  1. Toralf FörsterFeb 2, 2009
  2. Jakub NarebskiFeb 2, 2009
  3. Toralf FörsterFeb 3, 2009
  4. Johannes SchindelinFeb 3, 2009
  5. gitweb: Better regexp for SHA-1 committag matchJakub Narebski, Feb 6, 2009
  6. Rafael Garcia-SuarezFeb 6, 2009
  7. Jakub NarebskiFeb 6, 2009
  8. Rafael Garcia-SuarezFeb 6, 2009
  9. [PATCHv2] gitweb: Better regexp for SHA-1 committag matchJakub Narebski, Feb 6, 2009
  10. Johannes SchindelinFeb 6, 2009
  11. Jay SoffianFeb 6, 2009
  12. Jakub NarebskiFeb 6, 2009
  13. Junio C HamanoFeb 7, 2009
  14. Jakub NarebskiFeb 7, 2009
  15. Junio C HamanoFeb 7, 2009
  16. Jakub NarebskiFeb 7, 2009
  17. demerphqFeb 7, 2009
  18. Jakub NarebskiFeb 7, 2009
  19. Jakub NarebskiFeb 7, 2009
  20. demerphqFeb 7, 2009
  21. Jakub NarebskiFeb 7, 2009
  22. demerphqFeb 7, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.