Nano Hash - криптовалюты, майнинг, программирование

Как разделить строку с несколькими точками с запятой javascript

У меня есть строка, как показано ниже

var exampleString = "Name:Sivakumar ; Tadisetti;Country:India"

Я хочу разделить строку выше с запятой, поэтому хочу, чтобы массив был похож на

var result = [ "Name:Sivakumar ; Tadisetti", "Country:India" ]

Но поскольку имя содержит еще одну точку с запятой, я получаю массив вроде

var result = [ "Name:Sivakumar ", "Tadisetti", "Country:India" ]

Здесь Sivakumar ; Tadisetti значение ключа Name

Я только что написал такой код, как exampleString.split(';')... кроме этого, я не мог понять, как двигаться дальше, чтобы получить желаемый результат. Какие-либо предложения?

Логика разделения: я хочу разделить строку как массив с key:value парами


  • Какова логика, определяющая, на какой ; нужно разделить? В вашей строке 2 точки с запятой. 26.04.2020
  • @GabrielePetrioli Я хочу разделить строку на пары ключ:значение 26.04.2020
  • @Леонардо Но Сивакумар ; Tadisetti – это единая ценность 26.04.2020
  • @GabrielePetrioli key не содержит точек с запятой, но value может содержать более одной точки с запятой, например: Name:Sivakumar ; Tadisetti, Country:India 26.04.2020
  • Всегда ли значение заканчивается точкой с запятой? 26.04.2020
  • @GabrielePetrioli да, это всегда заканчивается точкой с запятой 26.04.2020

Ответы:


1

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

/;(?=\w+:)/

var exampleString = "Name:Sivakumar ; Tadisetti;Country:India";
var result = exampleString.split(/;(?=\w+:)/);
console.log(result)

26.04.2020
  • чувак; красиво и чисто. 26.04.2020

  • 2

    вот подход, при котором мы сначала разделяем ввод на ;, а затем объединяем элемент без : с предыдущим; так как это не должно назойливо.

    let exampleString = "Name:Sivakumar ; Tadisetti;Country:India"
    let reverseSplited = exampleString.split(";").reverse();
    
    let prevoiusString;
    let regex = /[^:]+:.*/;
    
    let result = reverseSplited.map( str => {
      if(regex.test(str)) {
        if(prevoiusString){
         let returnValue = str + ";" + prevoiusString;
         prevoiusString = null;
         return returnValue
        }
        return str
      }
      prevoiusString = str;
    }).filter(e=>e);
    
    
    console.log(result);

    26.04.2020
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..