Как разделить строку через пробел не включая пробел в кавычках?

Ссылка скопирована
1 ответ

Привет.

Type=method_call Endian=l Flags=0 Version=1 Cookie=1804 Timestamp="Thu 2024-02-22 10:33:53.447634 UTC"

Как разделить строку через пробел? Пробел так же присутствует тут Timestamp="Thu 2024-02-22 10:33:53.447634 UTC"
Поэтому split(' ') не подходит.

Как написать регулярное выражение?

[   'Type=method_call',   'Endian=l',   'Flags=0',   'Version=1',   'Cookie=1804',   'Timestamp="Thu 2024-02-22 10:33:53.447634 UTC"', ]

[ 'Type=method_call', 'Endian=l', 'Flags=0', 'Version=1', 'Cookie=1804', 'Timestamp="Thu 2024-02-22 10:33:53.447634 UTC"', ]

Дополнительно:

str.match(/w+=(".*?"|S*)/g)

  • Как всегда на высоте!)

Ответы:

let source = 'ЯблокоАпельсинГрушаWatermelon';
console.log(source.split(/(?=[А-ЯA-Z])/));

[
"Яблоко",
"Апельсин",
"Груша",
"Watermelon"
]

  • В вопросе есть строка
    Type=method_call Endian=l Flags=0 Version=1 Cookie=1804 Timestamp="Thu 2024-02-22 10:33:53.447634 UTC"

    С этой строкой ваше решение не работает.
    Вывод

    ['Type=method_call ', 'Endian=l ', 'Flags=0 ', 'Version=1 ', 'Cookie=1804 ', 'Timestamp="', 'Thu 2024-02-22 10:33:53.447634 ', 'U', 'T', 'C"']

    ['Type=method_call ', 'Endian=l ', 'Flags=0 ', 'Version=1 ', 'Cookie=1804 ', 'Timestamp="', 'Thu 2024-02-22 10:33:53.447634 ', 'U', 'T', 'C"']

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Стас DB Ответ

Для разделения строки через пробел, не включая пробелы в кавычках, можно воспользоваться регулярным выражением в PHP.

Пример кода:

$string = 'Разделить строку через "пробел не включая пробел в кавычках"';
$parts = preg_split('/\s+(?=(?:[^"]*"[^"]*")*[^"]*$)/', $string);
 
print_r($parts);

$string = 'Разделить строку через "пробел не включая пробел в кавычках"'; $parts = preg_split('/\s+(?=(?:[^"]*"[^"]*")*[^"]*$)/', $string); print_r($parts);

Этот код использует функцию preg_split() для разделения строки $string на части, разделенные пробелами, но игнорирует пробелы внутри кавычек. Регулярное выражение \s+(?=(?:[^"]*"[^"]*")*[^"]*$) используется для поиска пробелов, за которыми следует четное количество кавычек. Таким образом, пробелы внутри кавычек не будут учитываться при разделении строки.

После выполнения этого кода, вы получите массив $parts, содержащий разделенные части строки без учета пробелов внутри кавычек.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно