PSET3 - Как повысить точность функции питания?

У вас есть #p вне группы захвата, что делает его необходимой частью результата. Вы также неправильно используете символ точки (.). Dot (в большинстве вариантов reg-ex) будет соответствовать любому персонажу. Измените его на:

([0-9]*)(?:#p([0-9]*))?

Синтаксис (?:) - это то, как вы получаете группу, не связанную с захватом. Затем мы фиксируем только цифры, которые вас интересуют. Наконец, мы делаем все возможное.

Кроме того, большинство вариантов reg-ex имеют класс символов \d для цифр. Таким образом, вы можете упростить еще больше:

(\d*)(?:#p(\d*))?

Как указал другой человек, оператор * мог бы сопоставить цифры zero . Чтобы предотвратить это, используйте вместо этого оператор +:

(\d+)(?:#p(\d+))?
-1
задан Some programmer dude 13 July 2018 в 10:42
поделиться