Regular Expressions 101

Community Patterns

Поиск объявлений функций и процедур на T-SQL (Find function (procedure) declarations for T-SQL)

0

Regular Expression
PCRE (PHP <7.3)

/
^\h*(create|alter)\s+(function|procedure)\s+((\[|")?[\w_]+(\]|")?\.?)?((\[|")?[\w_]+(\]|")?)?
/
gmi

Description

Русский

Я использовал это регулярное выражение для построения Notepad++ списка функций и процедур в SQL файле.
Пример окна Notepad++ со списком функций Вызывается командой: Вид\Список функций. Так как в Notepad++ нет встроенного парсера для SQL кода, то пришлось написать свой. Чтобы его встроить в Notepad++ :

  1. Откройте файл functionList.xml расположенный в пользовательской директории C:\Users\xxxxx\AppData\Roaming\Notepad++ или если при установке вы выбрали чтобы все настройки сохранялись в папке установки, то в C:\Program Files (x86)\Notepad++

  2. Найдите элемент <associationMap> и добавьте в него (между <associationMap> ....</associationMap>) строчку

     <association id= \"T-SQL_func\" langID=\"17\"/>
    
  3. Найдите элемент <parsers> и добавьте в него (между <parsers> ....</parsers>) строки

     <!-- T-SQL             -->
     <parser displayName="T-SQL" id="T-SQL_func" commentExpr="(?s:/\*.*?\*/)|(?m-s:--.*?$)">
     	<function mainExpr='(?im)^\h*(create|alter)\s+(function|procedure)\s+((\[|")?[\w_]+(\]|")?\.?)?((\[|")?[\w_]+(\]|")?)?'
     			  displayMode="$functionName">
     		<functionName>
     			<nameExpr expr='(?im)(function|procedure)\s+((\[|")?[\w_]+(\]|")?\.?)?((\[|")?[\w_]+(\]|")?)?' />
     		</functionName>
     	</function>
     </parser>
    
  4. Пользуйтесь!

English

Used for the Functionion List Notepad++:

  1. Open of the functionList.xml file in Users\xxxxx\AppData\Roaming\Notepad++ directories

  2. Add in element <associationMap>

     <association id= \"T-SQL_func\" langID=\"17\"/>
    
  3. Add in element <parsers>

     <!-- T-SQL             -->
     <parser displayName="T-SQL" id="T-SQL_func" commentExpr="(?s:/\*.*?\*/)|(?m-s:--.*?$)">
     	<function mainExpr='(?im)^\h*(create|alter)\s+(function|procedure)\s+((\[|")?[\w_]+(\]|")?\.?)?((\[|")?[\w_]+(\]|")?)?'
     			  displayMode="$functionName">
     		<functionName>
     			<nameExpr expr='(?im)(function|procedure)\s+((\[|")?[\w_]+(\]|")?\.?)?((\[|")?[\w_]+(\]|")?)?' />
     		</functionName>
     	</function>
     </parser>
    
Submitted by FFFFF - 7 years ago