Помогите неписать регулярное выражение
От: Аноним  
Дата: 04.09.06 06:08
Оценка:
Помогите пожалуста написать регулярное выражения для разбора следующий строк

строка1.строка2
строка1 и строка2 содержит любые символы за исклчением .
[строка1].[строка2]
строка1 и строка2 могут содержать любые символы

пишу так:
(?:
(?<string1>[^\[\]]*)
|
\[
(?<string1>
(?>[^\[\]]+|\[(?<number>)|\](?<-number>))*(?(number)(?!))
)
\]
|
[^\]]
)
\.
(?:
(?<string2>[^\[\]]*)
|
\[
(?<string2>
(?>[^\[\]]+|\[(?<number>)|\](?<-number>))*(?(number)(?!))
)
\]
|
[^\]]
)
для варинтов
[строка1].строка2
строка1.строка2
работает
для вариантов
[строка1].[строка2]
строка1.[строка2]
нет.
Где я ошибся?
Re: Помогите неписать регулярное выражение
От: Kasko_Dm Украина  
Дата: 04.09.06 13:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Помогите пожалуста написать регулярное выражения для разбора следующий строк


А>строка1.строка2

А>строка1 и строка2 содержит любые символы за исклчением .
А>[строка1].[строка2]
А>строка1 и строка2 могут содержать любые символы

Попробуйте сделать так

System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"[^.]*[.][^.]*");


Но возможно я не понял до конца вопрос ! Если что не так исправте !
Windows Must Die :)
Re[2]: Помогите неписать регулярное выражение
От: Аноним  
Дата: 05.09.06 04:52
Оценка:
Здравствуйте, Kasko_Dm, Вы писали:

K_D>Здравствуйте, Аноним, Вы писали:


А>>Помогите пожалуста написать регулярное выражения для разбора следующий строк


А>>строка1.строка2

А>>строка1 и строка2 содержит любые символы за исклчением .
А>>[строка1].[строка2]
А>>строка1 и строка2 могут содержать любые символы

K_D>Попробуйте сделать так


K_D>
K_D>System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"[^.]*[.][^.]*");
K_D>


K_D>Но возможно я не понял до конца вопрос ! Если что не так исправте !
Re[2]: Помогите неписать регулярное выражение
От: Аноним  
Дата: 05.09.06 05:00
Оценка:
Здравствуйте, Kasko_Dm, Вы писали:

K_D>Здравствуйте, Аноним, Вы писали:


А>>Помогите пожалуста написать регулярное выражения для разбора следующий строк


А>>строка1.строка2

А>>строка1 и строка2 содержит любые символы за исклчением .
А>>[строка1].[строка2]
А>>строка1 и строка2 могут содержать любые символы

K_D>Попробуйте сделать так


K_D>
K_D>System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"[^.]*[.][^.]*");
K_D>


K_D>Но возможно я не понял до конца вопрос ! Если что не так исправте !


Блин глуг пост не полностью отпарвился
Немного не то мне наджо разбить исходную строку на две подстроки которые резделены точкой.
Если подстроки не ограничены [] то в нутри подстрок не может содержатся символа .
если подстрока ограничена [] то внутри нее могут содержатся любые символы.
для случая когда подстроки всегда ограничиваются [] я вырашение написал:

\[
(?<string1>
    (?>
        [^\[\]]+ 
        |\[ (?<number>)
        | \] (?<-number>)
    )*
    (?(number)(?!))
)
\]
\.
\[
(?<string2>
    (?>
        [^\[\]]+ 
        |\[ (?<number>)
        | \] (?<-number>)
    )*
    (?(number)(?!))
)
\]

но вот когда подстрока может не ограничиваться [] не могу
Re[2]: Помогите неписать регулярное выражение
От: Аноним  
Дата: 05.09.06 11:13
Оценка:
Установи RegexBuddy, очень помогает при составлении регулярок.
(([^\[\]]+)(\.|$))+|\[(.*?)\]
смотри по группам


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.