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