Регулярное выражение должно соответствовать всем нулям и двойным нулям между разделителями - PullRequest
0 голосов
/ 10 февраля 2020

Так что мне нужна помощь с регулярным выражением. У меня есть код чисел 1-26 с единичными нулями «0», представляющими пробел, и двойными нулями «00», представляющими точку, с дефисом, используемым в качестве разделителя.

EX) 7-19-00-20-2-0

Я пытаюсь выделить одиночные 0 (двойные нули уже будут вне уравнения , без совпадения с 20 и без переноса каких-либо дефисов. Я пишу в Java, это регулярное выражение должно использоваться в команде split для строки.

Ex) "7-19-20 -2-0 ".split ([]);

Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ

Я пробовал различные регулярные выражения, которые я бы не смог повторить, но последний получил меня близко. Это был «[^ 0-9] 0», который соответствовал бы только одиночным 0, которым не предшествовал бы ди git. Единственная проблема с этим состояла в том, что он также соответствовал бы дефису перед единственным нулем. Я не мог понять, как не включать символ перед желаемым соответствием.

Окончательное редактирование

Чтобы прояснить мой некорректный вопрос, вот пример ожидаемого ввода и вывода с помощью команды разделения

"0-7-19-20-2-0-20-0".split(...) --> ["-7-19-20-2-", "-20-"]

Обратите внимание, что были разделены только одиночные нули, оставив разделители дефиса там, где они стоят

1 Ответ

2 голосов
/ 10 февраля 2020

В строке с ограничением - da sh, чтобы соответствовать одиночным 0, необходимо использовать обзорные символы.

0 должно быть в начале строки (^) или перед - da sh, и должно стоять в конце строки ($) или после - da sh.

(?<=^|-)0(?=-|$)
...