Member 13569650 Ответов: 1

Regexoptions соответствует задаче разделения


Привет
У меня есть приложение vb, которое использует регулярное выражение с текстовым полем, в которое пользователь помещает свой шаблон.

И еще одно текстовое поле для вывода приложения.

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

Метод вывода совпадений
Всегда работайте нормально с регулярными выражениями.

Но методы разделения и замены
Сорки в порядке только с регулярными опциями
Когда они бегут за тобой
Метод спичек.

Если они бегут первыми без
Ранее запущенный метод совпадений
Результаты всегда совпадают
К последним регулярным выражениям предыдущего метода совпадений.

Может кто-нибудь помочь.
Заранее спасибо.


[редактировать]
Добавлено в качестве решения:
Цитата:
Вот в чем проблема код
Беги нормально. Приложение не выбрасывает никаких ошибок.

Результаты в порядке но без них
Связанные с текущими регулярными выражениями

Только результаты матчей
Метод связан с регулярными выражениями.

Спасибо.

[/редактировать]

Что я уже пробовал:

Заново включать поиск

re.matche (источник)

Re.replace(источник, замена)

Re.split(источник)

Richard MacCutchan

- Может кто-нибудь помочь?"
Нет, если вы не покажете реальный код и не объясните, где он терпит неудачу.

OriginalGriff

- В том-то и проблема, что код
Беги нормально. Приложение не выбрасывает никаких ошибок."
Нет, это не так - он просто не бросает никаких исключений, что означает, что он "не падает". Это не значит, что это правильно, или это будет делать то, что вы ожидали! "Правильный код" означает не только "он скомпилирован нормально и не падает"!

Подумайте о процессе разработки как о написании электронного письма: успешная компиляция означает, что вы написали письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.
Бежать без фактического сбоя - это все равно что иметь там действительные английские предложения-это не то же самое, что "иметь в виду то, что вы хотели сказать".
Правильный код - это "написано по-английски", и "означает то, что вы хотели сказать" - и это большая разница!

Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но вы перейдете к более ранним стадиям позже): тестирование и отладка.

Начните с рассмотрения того, что он делает, и как это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а он удваивает его и печатает ответ, то если ввод / вывод был таким:

Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его - он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он находится где-то здесь:
private int Double(int value)
   {
   return value * value;
   }

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить, почему. Поместите точку останова в первую строку метода и запустите приложение. Когда он достигнет точки останова, отладчик остановится и передаст управление вам. Теперь вы можете запускать свой код построчно (так называемый "одноступенчатый") и просматривать (или даже изменять) содержимое переменных по мере необходимости (черт возьми, вы даже можете изменить код и повторить попытку, если вам это нужно).
Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она действительно делала, когда вы использовали кнопку "шаг вперед" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?
Надеюсь, это поможет вам определить, в какой части этого кода есть проблема и в чем она заключается.
Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он только улучшается при использовании!


Мы не можем сказать, что вы сделали без соответствующего фрагмента кода: мы понятия не имеем, какой код вы на самом деле написали, что вы ожидали сделать то, что хотели. А без этого мы понятия не имеем, как помочь вам это исправить!

Поэтому отредактируйте свой вопрос, вставьте соответствующий фрагмент кода - не больше, чем метод, содержащий ваш код регулярного выражения, - и мы посмотрим, что можно сделать. Но без этого? мы действительно ничем не можем вам помочь...

Member 13569650

Оооо я вышел из своего разочарования
Перед вызовом метода совпадений
Я вызвал функцию getregexoptions

Но прежде чем позвонить разделите и замените
Я забыл позвонить в getregexoptions.

Спасибо.

1 Ответов

Рейтинг:
2

ZurdoDev

Как уже упоминалось в комментариях, вы смогли решить эту проблему самостоятельно, сначала вызвав getregexoptions.