Извините, если это обман, я поискал, но не смог найти что-то, что соответствует моему запросу.
У меня есть функция замены в java, которая запускает несколько регулярных выражений для поиска и замены спецификаций c строк.
Один из них смотрит на числа, и если он находит число, он добавляет пробел вокруг него, например;
test123> test 123
используется регулярное выражение «(([0-9] +)», и оно заменяет его на «$ 1»
Я столкнулся с проблемой, хотя в некоторых крайних случаях мне нужно не разделять число из Speci c string, например, ha sh names. Итак, теперь мне нужно обновить мое регулярное выражение, чтобы обернуть любую комбинацию чисел пробелами, ЕСЛИ она не соответствует определенной последовательности c.
Например, , Мне нужны следующие результаты:
- test123> test 123
- 84test> 84 test
- test md5> test md5
- sha256> sha256
- слово два sha1> слово два sha1
- w0rd> w 0 rd
- aisha256> aisha 256
- word md 5> word md 5 et c
Я пробовал использовать отрицательный поиск назад, чтобы сопоставить такие слова, как md5, sha1, sha256, et c, но это до сих пор кажется, что цифры разделились. Я уверен, что это что-то простое. Я делаю не так .... "((?! Md5) (\ d +))"
Итак, основные c правила, любые di git найденные в строка должна быть окружена пробелами, ЕСЛИ ей не предшествует слово sha или md. Если между числом и md или sha уже есть пробел, он должен остаться. sha или md может быть началом строки ИЛИ ему может предшествовать пробел или символ. подчеркивание, но не может быть в конце более длинного слова или в середине слова.
Спасибо