Вопрос по regex – Какой движок RegEx используется в ColdFusion 9?

6

При разработке регулярных выражений это помогает не только узнать, какие ограничения видны здесь:http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0a38f-7ff3.html , но также и то, что ожидается грамматика и синтаксис. Это также помогает при тестировании приложений, которые могут выбрать движок Regex для тестирования на тестовом стенде текста или файлов.

Я тут и там видел, что CF использует Jakarta ORO,http://jakarta.apache.org/oro/ , которая вышла на пенсию в конце 2010 года, так что не может быть правильной, или она все еще включена в CF9?

Если CF10 поставляется с другим двигателем Regex, как CF9, пожалуйста, укажите его, если он известен.

Ваш Ответ

1   ответ
16

CF9 and CF10 both use Jakarta ORO v2.0.6 - изменение его для существующих функций нарушило бы обратную совместимость, поскольку другие движки регулярных выражений используют другой синтаксис (как для сопоставления, так и для замены).

Тем не менее, вы можете получить доступ кjava.util.regex пакет от CF, который обеспечивает доступ к версии того движка, который использует ваша JRE, используяCREATEOBJECT / тип = Java

Если вам неудобно работать с классами Java самостоятельно, я создал проект, который оборачивает библиотеку java.util.regex в набор удобных функций CFML, см.cfregex.net Больше подробностей.

хорошо знать. Являетсяjava.util.regex лучше во многом?
Только что опубликовал вопрос в группе Google cfregex. Спасибо
Генри, я только что ответил на группу.(sorry for delay; had Internet issues)
У Jakara ORO есть одно преимущество:\u/\l а также\U..\E/\L..\E Синтаксис замены (для удобного верхнего / нижнего регистра) - нет простого эквивалента таковому с java.util.regex (необходимо циклически проходить матчи / группы, делая это вручную).
Ага! Наиболее распространенным преимуществом, вероятно, являются взгляды задних сторон, а также атомарная группировка (которая помогает повысить производительность за счет предотвращения обратного отслеживания для определенных сегментов) и некоторые другие вещи. Он также постоянно обновляется - например, JRE 1.7 добавляет именованные группы (хотя и не уверен, что CF еще поддерживается на 1.7?)

Похожие вопросы