Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/35: Рейтинг темы: голосов - 35, средняя оценка - 4.77
14 / 14 / 3
Регистрация: 21.09.2012
Сообщений: 93
1

Парсинг строки для получения значений в кавычках

09.11.2012, 16:29. Показов 7058. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго дня. Хочу спросить у уважаемого сообщества как распарсить такую строку "asd","asa","",,,. Какой нужно использовать патерн что бы получить asd, asa, пустую строку. Спс заранее за помощь.

Добавлено через 1 минуту
пробовал такой паттерн \",\" но тогда в первом слове остается кавычка и остаются последние запятые

Добавлено через 6 минут
пробовал также и \" |\",\" |, но в таком случае возникает куча не нужных пустых строк
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2012, 16:29
Ответы с готовыми решениями:

Парсинг XML значений для получения значений Double
Всем добрый день. Есть XML файл в котором нужно спарсить значения double. Подскажите пожалуйста...

Метод для получения значений аргументов внутри метода
Подскажите, есть ли какой-нибудь стандартный способ для получения значений и названий аргументов...

Как использовать xsd файлы при десериализации xml для получения значений элементов?
Всем привет. Для личных нужд по работе пишу программку для конвертирования xml, получаемых с сайта...

Считывание данных из запроса для получения конкретной строки таблицы
Использую базу данных SQLite. Подключаюсь к ней и выполняю запрос таким образом: SQLiteConnection...

6
218 / 212 / 63
Регистрация: 17.04.2012
Сообщений: 382
09.11.2012, 16:30 2
C#
1
2
string str =  "asd","asa","",,,.
str = str.Split('\"', ',');
Если такой вариант не устраивает - можно через регулярные выражения
0
14 / 14 / 3
Регистрация: 21.09.2012
Сообщений: 93
09.11.2012, 17:56  [ТС] 3
как раз такой вариант не устраивает, а как через регулярку это сделать?

Добавлено через 3 минуты
C#
1
str.Split('\"', ',');
этот вариант плох тем что создает кучу пустых строк

Добавлено через 18 минут
если сделать так "\"\\S*?\"" , то запятая парсится как отдельная строка, а это не правильно

Добавлено через 59 минут
люди подскажите очень надо уже 2 часа сижу с этим шаблоном((
0
218 / 212 / 63
Регистрация: 17.04.2012
Сообщений: 382
09.11.2012, 18:01 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = @"ыв);опр:);*вапрар!+аароп+пропропо%*(";
            var newText = Regex.Replace(text, "[-.?!)(,:!+@#$%^&*/-|]", "");
            Console.WriteLine(newText);
            Console.ReadLine();
        }
 
        static string ExtractDomainNameFromURL_Method3(string str)
        {
            string str = System.Text.RegularExpressions.Regex.Replace(str,  @"^([a-zA-Z]+:\/\/)?([^\/*$]+)\/.\*?$", "$2" );
            return str;
        }
        
    }
}
0
14 / 14 / 3
Регистрация: 21.09.2012
Сообщений: 93
09.11.2012, 18:28  [ТС] 5
ух, щас буду пробовать

Добавлено через 6 минут
ну хорошо ну а если конкретно для моей строки "sdas","asd",,, как сделать так что бы вывело sdas, asd, и два пробела?

Добавлено через 8 минут
почти титаническими усилиями за 2 часа выдавил из себя вот это "\"(.*?)\"" и это работает,но последние запятые как распарсить в пустые строки я хз(
0
218 / 212 / 63
Регистрация: 17.04.2012
Сообщений: 382
09.11.2012, 20:05 6
думаю, что здесь уже нужна програмная обработка, чтоб избавится от конечных ненужных значений
как вариант

Добавлено через 14 минут
C#
1
2
3
4
5
6
7
8
9
10
11
 string text =  "sdas\",\"asd,,,,,,,";
           string newText = Regex.Replace(text, "[,\"(.*?)\"]", "!");
            for(int i = newText.Length; i >0; i--)
            {
                if(newText[newText.Length-1].ToString() == "!")
                    newText = newText.Substring(0, newText.Length -1);
                else
                    break;
            }
            Console.WriteLine(newText);
            Console.ReadLine();
1
14 / 14 / 3
Регистрация: 21.09.2012
Сообщений: 93
10.11.2012, 00:30  [ТС] 7
спс за помощь буду думать)

Добавлено через 1 час 44 минуты
Вот наконец-то спустя 8 часов разобрался и хочу объяснить как я это всё сделал может кому-то поможет. Так вот была такая задача распарсить вот этот текст: "text1","text2",,,. Начнём разбираться постепенно.

Этап 1
строка "text1","text2".
паттерн для регулярки выглядит следующим образом "(?<=\")(?!,)(.*?)(?=\")".
разбор паттерна:

(?<=\") - означает, что должно идти перед искомой строкой, в нашем случае это \" ;
(?!,) - означает, что ни в коем случае ни должно идти после кавычек, так как в нашем случае строка может содержать и другое символы между кавычек "text1","text2";
(.*?) - это собственно и есть наше содержимое "text1","text2";
(?=\") - означает, что обязательно должно быть после искомой строки, в нашем случае это \" ;
В результате выполнения этого паттерна получим: test1 test2

Этап 2
если мы хотим распарсить "text1","text2",,,, и получить пустые строки в результат,что нам для этого нужно. К существующему паттерну "(?<=\")(?!,)(.*?)(?=\")" добавить "(?<=\")(?!,)(.*?)(?=\")|(?<=,)(?=,)", в результате выполнения этого паттерна мы получим следующую строку: test1 test2 emptystring emptystring.

Спс всем за внимание
2
10.11.2012, 00:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2012, 00:30
Помогаю со студенческими работами здесь

Регулярное выражение для получения текста в кавычках
подскажите регулярное выражение чтобы выдрать из текса все что в кавычках

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

Чтение XML файла и его парсинг для получения всех URL
Добрый день! Из интернета получаю XML данные - &lt;response list=&quot;true&quot;&gt; - &lt;audio&gt; ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru