25.05.2011, 17:49
|
Интересующийся
|
|
Регистрация: 04.05.2011
Сообщений: 19
|
|
регулярное выражение, выборка
Здравствуйте.
Нужно при помощи регулярки вытащить выделенное, вот исходный текст, с которым должна работать регулярка:
Цитата:
|
MCICommand("open <SrcDir>\sample.mpg alias MPEG style child parent <This>")
pw=PubWidth()
ph=PubHeight()
For i=0 To Infinity
If (POS(LTrim$,txt$) | POS(RTrim$,txt$) | POS(Empty$,txt$)) Then
txt$=StrChange(txt$,RTrim$,CRLF$)
txt$=StrChange(txt$,LTrim$,CRLF$)
txt$=StrChange(txt$,Empty$,CRLF$)
Else
Break()
End
Next i
|
То, что выделено жирным, должно обработаться следующей регуляркой:
Код:
|
/^[ \t]*[A-Za-z0-9_]+(?=\()/g |
а то, что выделено жирным и подчеркнуто, должно обработаться примерно такой регуляркой:
Код:
|
/[^(=][A-Za-z0-9_]+(?=\()/g |
Но, второй код так же выбирает и MCICommand, чего не должно быть
|
|
25.05.2011, 21:29
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,205
|
|
Сообщение от setter
|
Но, второй код так же выбирает и MCICommand, чего не должно быть
|
Таки отреж его сразу, потом работай ркгулярными выражениями...
|
|
26.05.2011, 04:04
|
Интересующийся
|
|
Регистрация: 04.05.2011
Сообщений: 19
|
|
Сообщение от ksa
|
Таки отреж его сразу, потом работай ркгулярными выражениями...
|
его не нужно отрезать, он должен быть в тексте
|
|
26.05.2011, 09:40
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,205
|
|
Сообщение от setter
|
он должен быть в тексте
|
Таки пусть будет... Кто мешает тебе сделать "копию" того текста и работать с ней?
|
|
26.05.2011, 11:28
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
[(= ]([A-Za-z0-9_]+)(?=\()
в RegExp.$1 будет все, что выделено жирным и подчеркнуто.
|
|
27.05.2011, 09:08
|
Интересующийся
|
|
Регистрация: 04.05.2011
Сообщений: 19
|
|
Сообщение от Riim
|
[(= ]([A-Za-z0-9_]+)(?=\()
в RegExp.$1 будет все, что выделено жирным и подчеркнуто.
|
это конечно хорошо, но мне нужно чтобы сами скобки и знак равно не затрагивало
|
|
27.05.2011, 09:14
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
RegExp.$1 не затрагивает. В js нет поиска с "заглядыванием назад", т. е. если нужно что-то сзади проверить, то оно точно будет в основном результате.
|
|
27.05.2011, 10:06
|
Интересующийся
|
|
Регистрация: 04.05.2011
Сообщений: 19
|
|
Интересно, но у меня из строки вида <const> выдерает только const следующий код: [^<][A-Za-z0-9_]*(?=>)
Ни "<", ни ">" он не затрагивает. А почему тогда в другом коде так нельзя?
|
|
27.05.2011, 10:29
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Сообщение от setter
|
Ни "<", ни ">" он не затрагивает
|
[^<] совпадает с первой буквой, здесь "<" и не должен в результат попадать, а (?=>) это поиск с "заглядыванием вперед", который есть в js.
|
|
|
|