Próbuję znaleźć sposób, aby umożliwić mi dynamicznie utworzyć obiekt regexp z ciąg (pobierane z bazy danych), a następnie użyć go do filtrowania innego ciągu. Ten przykład ma na celu wyodrębnienie danych z komunikatu zatwierdzenia git, ale teoretycznie każde prawidłowe wyrażenie regularne może być obecne w bazie danych jako ciąg znaków.Dynamic Regex w Ruby
Co dzieje
>> string = "[ALERT] Project: Revision ...123456 committed by Me <[email protected]>\n on 2009- 07-28 21:21:47\n\n Fixed typo\n"
>> r = Regexp.new("[A-Za-z]+: Revision ...[\w]+ committed by [A-Za-z\s]+")
>> string[r]
=> nil
Co chcę się zdarzyć
>> string = "[ALERT] Project: Revision ...123456 committed by Me <[email protected]>\n on 2009- 07-28 21:21:47\n\n Fixed typo\n"
>> string[/[A-Za-z]+: Revision ...[\w]+ committed by [A-Za-z\s]+/]
=> "Project: Revision 123456 committed by Me"
Perfect, dzięki - Wiedziałem, że muszę robić coś subtelnie złego. – davidsmalley