Хотите разделить часть в строке с регулярным выражением - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу убрать следующую часть:

, Symbol(KEY): {"kind": "Quote", "namespace": undefined, "path": ["Quote", undefined]}}

из этого ответа json, полученного из запроса get (хранилище данных):

{
  "aboutYourself": {
    "creditFile": true,
    "dateOfBirth": {
      "date": {
        "day": 3,
        "month": 5,
        "year": 1992
      }
    },
  Symbol(KEY): {
    "kind": "Quote",
    "namespace": undefined,
    "path": [
      "Quote",
      undefined
    ]
  }
}

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

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

Я нашел способ избавиться от него: просто JSON.Stringify добились цели, потому что он удаляет то, что не является частью ответа json.

0 голосов
/ 29 ноября 2018

Я считаю, что /(Symbol\([^)]*\):\s*\{(?:[^}]*[\n\r\s])*})/ - это регулярное выражение, которое вам нужно для этого.

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

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

let data = `{
  "aboutYourself": {
    "creditFile": true,
    "dateOfBirth": {
      "date": {
        "day": 3,
        "month": 5,
        "year": 1992
      }
    },
  Symbol(KEY): {
    "kind": "Quote",
    "namespace": undefined,
    "path": [
      "Quote",
      undefined
    ]
  }
};`

let regex = /(Symbol\([^)]*\):\s*\{(?:[^}]*[\n\r\s])*})/;

console.log(regex.exec(data)[0]);

После этого это всего лишь случай выполнения замены с результатом совпадения пробела, и задание хорошо 'n

0 голосов
/ 29 ноября 2018

Я бы предложил снимать детали до и после того раздела, который вы хотите удалить.Шаблон, такой как

^(.*), Symbol(KEY): {"kind": "Quote", "namespace": undefined, "path": ["Quote", undefined]}}(.*)$

, должен делать именно это.

...