Регулярное выражение простого логического выражения со скобкойC#

Место общения программистов C#
Ответить
Anonymous
 Регулярное выражение простого логического выражения со скобкой

Сообщение Anonymous »

Я пытаюсь написать регулярное выражение, которое должно получить только следующие шаблоны: < /p>

WordWihoutNumbers.WordWihoutNumbers='value'< /code> < /p>

и шаблоны с несколькими субпючениями, такими как: < /p>

WordWihoutNumbers.WordWihoutNumbers='value' OR WordWihoutNumbers.WordWihoutNumbers='value2' AND WordWihoutNumbers.WordWihoutNumbers='value3'< /code> < /p>

WordWihoutNumbers< /code> должно быть как минимум двумя символами и без цифр. /> < /ul>

, а это не так: < /p>


=>. Отсутствует < /li>
hardware.make’lenovo '=> = отсутствует < /li>
< /ul>

Я использовал regexbuddy, чтобы написать следующую строку regex: < /p>

(?i)(\s)*[a-z][a-z]+(.[a-z][a-z]+)(\s)*=(\s)*'[a-z0-9]+'(\s)*((\s)*(AND|OR)(\s)*[a-z][a-z]+(.[a-z][a-z]+)(\s)*=(\s)*'[a-z0-9]+')*
< /code>

Когда я тестировал его, используя regexbuddy, это работало нормально, но когда я использую его внутри моего C# кода, я всегда получаю «false 'result. < /p>

Что я делаю не так?string expression = "Hardware.Make=’Lenovo’ OR User.Sitecode=’PRC’";
Regex expressionFormat = new Regex(@"(?i)(\s)*[a-z][a-z]+(.[a-z][a-z]+)(\s)*=(\s)*'[a-z0-9]+'(\s)*((\s)*(AND|OR)(\s)*[a-z][a-z]+(.[a-z][a-z]+)(\s)*=(\s)*'[a-z0-9]+')*");
bool result = expressionFormat.IsMatch(expression );
< /code>

и параметр результата всегда является false < /code> < /p>



Обновление: благодаря @nhahtdh за его комментарий, я использовал ’< /code> в моей входной проверке вместо« /code>
Is Add Ada Codate> Valtes также: для этого также для этого выражения, чтобы также добавить, чтобы также добавить к этому выражению, чтобы также добавить к этому выражению.WordWihoutNumbers.WordWihoutNumbers='value' OR WordWihoutNumbers.WordWihoutNumbers='value2') AND WordWihoutNumbers.WordWihoutNumbers='value3'< /code>) действителен, но < /p>

)WordWihoutNumbers.WordWihoutNumbers='value' OR WordWihoutNumbers.WordWihoutNumbers='value2') AND WordWihoutNumbers.WordWihoutNumbers='value3'< /code>) недействителен. < /p>

Можно ли реализовать с помощью Regex? У вас есть идея? < /p>



Подробнее здесь: https://stackoverflow.com/questions/215 ... arenthesis
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»