2013-12-09 4 views
1

Ребята Я не знаю, как точно сформулировать выражения регулярных выражений (я никогда не узнавал об этом). Однако для ситуации, в которой я сейчас, я знаю свое выражение регулярного выражения, которое мне нужно использовать.Формула выражения выражения Regex

мне нужно, чтобы следующий

$ANYTHNG_HERE$+(5*8-7) //in short a word between dollar sign and any mathematical operator(s) 

И я строго нужно избегать вещей, как

&ANYTHNG_HERE&+6fdfd(5+6) 

Как поступить?

+0

Есть ли какие-либо конкретные символы, которых вы хотели бы избежать? – SpiderCode

+0

@SpiderCode, нет, но я хочу избегать комбинаций чисел и алфавитов (1ytfdf и т. Д. НЕ допускается) –

ответ

0

Как насчет \$.*\$[-+*/()0-9]*$?

Будьте осторожны: это регулярное выражение для sed - я НИКОГДА не использовал C#!

Я проверил его против MSDN, хотя и, похоже, проверить.

+0

Вы пропустили '^' в начале .. Также кажется, что ему нужно '+' между $ и выражением – Anirudha

1

Вы можете настроить математические уравнения с:

\([0-9*+/-]*\)

и вы можете соответствовать начало строки с:

^\$

Так просто добавить точку в середине и здесь полное регулярное выражение:

^\$.*?\([0-9*+/-]*\)

+1

Вы что ваш класс символов также соответствует символам ',' и '.'? –

+0

Упс! Я понятия не имел, что вы можете сделать это с помощью символов и тире. Отредактировано основное сообщение. –

1

Не полный ответ, но это:

^\$.*\$\+([\(\)\d*-\\]+)$

будет соответствовать:

$ANYTHNG_HERE$+(5*8\7)

Но не

&ANYTHNG_HERE&+6fdfd(5+6)

Если вам нужны дополнительные изменения, пожалуйста комментарий.

Смежные вопросы