0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
1
.NET 2.x

Удалить данные, которые находятся между символами \ \ вместе с этими символами

25.03.2012, 17:36. Показов 6337. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите, пожалуйста, регулярку для того, чтобы удалить данные, которые находятся между символами \ \, вместе с этими символами.
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2012, 17:36
Ответы с готовыми решениями:

Удалить строки из файла которые находятся между символами <!-- и -->
Возник собственно такой вопрос, как удалить строки из файла которые находятся между символами &lt;!--...

В заданной строке символов посчитать кол-во слов, которые находятся между символами ";"
Помогите, пожалуйста, решить((

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

Удалить слово между символами
Здравствуйте, есть таблица: ID | text 1 | Hello world &lt;h1&gt;Hello plese&lt;/h1&gt; ab bs 2 | Hello...

21
773 / 553 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
25.03.2012, 18:01 2
C#
1
2
3
   string j = @"kjktktr\38738\kdkk\hhhh";
            Regex reg = new Regex(@"\\.+\\");
            MessageBox.Show(  reg.Replace(j, ""));
1
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
25.03.2012, 18:31  [ТС] 3
Помогло.
Подскажите, пожалуйста, регулярку, которая узнаёт, находится ли в строке символы и подстроки(без запятых):+,-,*,/,(,),A-z,0-9,'[только одна буква A-z]',:=(только в совокупности).
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
26.03.2012, 01:25 4
ну если прям регулярным выражением хочется проверить есть ли такие символы то вот оно регулярное выражение: [A-Za-z]{1}|[+0-9\-\/\*,]|:= при том если Match возвращает значение значит есть один из этих элементов
1
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
27.03.2012, 17:12  [ТС] 5
Прошу прощения, не правильно вопрос поставил, интересует есть ли какие-то ещё символы, кроме
+,-,*,/,(,),A-z,0-9,'[только одна буква A-z]',:=(только в совокупности)
Прошу обратить внимание на то, что одинарные кавычки могут быть только в совокупности с ОДНОЙ буквой A-z или же просто A-z, но до 32 (включительно) символов.
0
9 / 11 / 2
Регистрация: 21.04.2010
Сообщений: 91
27.03.2012, 20:59 6
[^ ... ] Match any character not in the set. e.g. [^0-9] matches any non-digit.
Доходчиво? =) если вы поставите перед всеми вашими символами, то RegExp будет определять все остальные символы, кроме ваших.
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
27.03.2012, 21:33 7
тут проблема сложнее тем, что надо что бы реагировало на двойной знак деления к примеру '//' что при простом добавлении ^ все равно не выявится итд итп. одной регуляркой у меня лично фантазии не хватает, так как в регулярках нет оператора "и" есть только оператор "или", в общем лично я думаю что нельзя так придумать. Задача автора не столь серьезна, просто в ходе анализа если попался не знакомый элемент надо выдавать сообщение, что условие не верно, ну а так же можно исключить из возможности ввода ненужные символы...
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
27.03.2012, 23:52 8
AlexeylForpostl, Приведите побольше конкретных примеров, пожалуйста. А-то задание не совсем ясно.
0
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
28.03.2012, 19:42  [ТС] 9
Необходимо проверить удовлетворяет ли введенная строка следующим правилам:
Разрешенные символы:
+-*/()
:= (только вместе, т.е. : = уже не удовлетворяет условию)
A-z
'[A-z]' т.е. одинарная кавычка затем любая буква латинского алфавита одинарная кавычка

На выходе надо сказать YES/NO.
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
29.03.2012, 01:05 10
AlexeylForpostl, нет, я имел ввиду показать как можно больше примеров входной строки с ответами YES или NO... Всё таки приведите эти примеры.
Попробуйте это:
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
27
using System;
using System.Text.RegularExpressions;
 
namespace WindowsApplication1
{
    class Program
    {
        static void Main()
        {
            var strPattern = @"([+\-*/()]|:=|[A-Za-z]|'[A-Za-z]')+";
 
            Console.WriteLine("Введите строку:");
            var strInput = Console.ReadLine();/*@"A+B:=C";*/
            var m = Regex.Match(strInput, strPattern);
            Console.Write("Данным регулярным выражением мы отловили из строки следующее: {0}\r\nОтвет: ", m.Value);
            if (m.Value.Length == strInput.Length)
            {
                Console.Write("YES");
            }
            else
            {
                Console.Write("NO");
            }
            Console.ReadLine();
        }
    }
}
0
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
31.03.2012, 18:01  [ТС] 11
Цитата Сообщение от FutureCome Посмотреть сообщение
AlexeylForpostl, нет, я имел ввиду показать как можно больше примеров входной строки с ответами YES или NO... Всё таки приведите эти примеры.
Попробуйте это:
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
27
using System;
using System.Text.RegularExpressions;
 
namespace WindowsApplication1
{
    class Program
    {
        static void Main()
        {
            var strPattern = @"([+\-*/()]|:=|[A-Za-z]|'[A-Za-z]')+";
 
            Console.WriteLine("Введите строку:");
            var strInput = Console.ReadLine();/*@"A+B:=C";*/
            var m = Regex.Match(strInput, strPattern);
            Console.Write("Данным регулярным выражением мы отловили из строки следующее: {0}\r\nОтвет: ", m.Value);
            if (m.Value.Length == strInput.Length)
            {
                Console.Write("YES");
            }
            else
            {
                Console.Write("NO");
            }
            Console.ReadLine();
        }
    }
}
Не работает:
as+9-8()12:=
Пишет:
Выловили:as+
NO
А должно высветиться YES.
Чуток потредактировал объявление переменных:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Regex strPattern = new Regex(@"([+\-*/()]|:=|[A-Za-z]|'[A-Za-z]')+");
 
            Console.WriteLine("Введите строку:");
            string strInput = Console.ReadLine();/*@"A+B:=C";*/
            Match m = strPattern.Match(strInput);
            Console.Write("Данным регулярным выражением мы отловили из строки следующее: {0}\r\nОтвет: ", m.Value);
            if (m.Value.Length == strInput.Length)
            {
                Console.Write("YES");
            }
            else
            {
                Console.Write("NO");
            }
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
31.03.2012, 19:06 12
Цитата Сообщение от AlexeylForpostl Посмотреть сообщение
Необходимо проверить удовлетворяет ли введенная строка следующим правилам:
Разрешенные символы:
+-*/()
:= (только вместе, т.е. : = уже не удовлетворяет условию)
A-z
'[A-z]' т.е. одинарная кавычка затем любая буква латинского алфавита одинарная кавычка

На выходе надо сказать YES/NO.
А тут про цифры и ничего не было сказано...
Измените регулярное выражение на:
C#
1
@"([+\-*/()]|:=|[A-Za-z]|'[A-Za-z]'|\d)+";
1
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
31.03.2012, 19:26  [ТС] 13
Цитата Сообщение от FutureCome Посмотреть сообщение
А тут про цифры и ничего не было сказано...
Измените регулярное выражение на:
C#
1
@"([+\-*/()]|:=|[A-Za-z]|'[A-Za-z]'|\d)+";
Спасибо огромнейшее.
Сделайте, пожалуйста, второй вариант, чтобы между одинарных кавычек можно было любой только 1 символ вставить.
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
31.03.2012, 20:03 14
Сейчас и так один же ловится...? Или акцент на том, что ЛЮБОй символ? Даже пробелы, цифры и спецзнаки?
Тогда:
@"([+\-*/()]|:=|[A-Za-z]|'.'|\d)+";
1
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
31.03.2012, 21:04  [ТС] 15
Цитата Сообщение от FutureCome Посмотреть сообщение
Сейчас и так один же ловится...? Или акцент на том, что ЛЮБОй символ? Даже пробелы, цифры и спецзнаки?
Тогда:
Совершенно верно.
И ещё один вариант необходим - любое количество символов.
И 2 новые отдельные регулярки ещё нужны:
1. Проверить есть ли встроке [A-z] слово 33 и более символов.
2. Проверить количество символов между одинарными кавычками.
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
31.03.2012, 21:27 16
Не проверял, проверьте.
Цитата Сообщение от AlexeylForpostl Посмотреть сообщение
И ещё один вариант необходим - любое количество символов.
C#
1
@"([+\-*/()]|:=|[A-Za-z]|'.+'|\d)+";
Цитата Сообщение от AlexeylForpostl Посмотреть сообщение
1. Проверить есть ли встроке [A-z] слово 33 и более символов.
C#
1
@"(^|\b)[A-Za-z]{33,}($|\b)";
Цитата Сообщение от AlexeylForpostl Посмотреть сообщение
2. Проверить количество символов между одинарными кавычками.
C#
1
@"'(?<quoted>.*?)'";
А потом для получения длины используете как раньше:
C#
1
m.Groups["quoted"].Value.Length
1
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
01.04.2012, 17:46  [ТС] 17
Цитата Сообщение от FutureCome Посмотреть сообщение
Не проверял, проверьте.
C#
1
@"(^|\b)[A-Za-z]{33,}($|\b)";
Работает только если ввести строку, содержащую символы [A-z]
Однако, в строке могут быть все символы, описанные выше. (+-*/0-9()'любые символы в одинарных кавычках')
Интересует именно 33+ подряд идущих A-z символов.
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
01.04.2012, 20:01 18
Цитата Сообщение от AlexeylForpostl Посмотреть сообщение
Работает только если ввести строку, содержащую символы [A-z]
Вы же сами сказали...
Цитата Сообщение от AlexeylForpostl Посмотреть сообщение
И 2 новые отдельные регулярки ещё нужны:
Тогда не совсем понимаю, что нужно...
Может для этой регулярки:
C#
1
@"([+\-*/()]|:=|[A-Za-z]|'.+'|\d)+";
вот для этой её части:
[A-Za-z]
сделать так, чтобы она ловила только строки длиннее 33 символов?
Или ловить так же, а потом просто посмотреть, есть ли 33 и более?

И... Что-то я устал бесконечно помогать Вам... Вы хоть разобрались с тем, что я дал? Или просто скопировали бездумно? Я не стану просто помогать, пытайтесь сами что-то делать, показывайте проблемы и спрашивайте, как их решить, а не просите за Вас всё написать.
Справка: Регулярные выражения.
1
0 / 0 / 1
Регистрация: 11.08.2010
Сообщений: 72
01.04.2012, 20:59  [ТС] 19
Цитата Сообщение от FutureCome Посмотреть сообщение
Вы же сами сказали...

Тогда не совсем понимаю, что нужно...
Прошу прощения, если что не понятно выразил.
Опишу всю задачу.
Сначала мы проверяем, в строке только разрешенные символы либо нет.
Если только разрешенные проверяем, есть ли в этой строке слово [A-z] 33+ символов, при этом в строке могут быть /*-+0-9A-z'любые символы'
Это надо сделать 2я проверками, потому что будут разные ошибки высвечиваться.
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
01.04.2012, 21:27 20
Попробуйте проверить строку выражением, допустим:
C#
1
@"([+\-*/()]|:=|[A-Za-z]|'[A-Za-z]'|\d)+";
А потом этим:
C#
1
@"(^|\b)[A-Za-z]{33,}($|\b)";
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2012, 21:27
Помогаю со студенческими работами здесь

Как сохранить данные между символами?
Здравствуйте есть такой формат данных Пример: 888=999=1000 мне нужно сохранить то что между &quot;=&quot;...

Удалить из строки всё между определенными символами
В строке например мусор вида &quot;1 ... ... ... ... ... 1&quot;. Пример строки с мусором: &quot;aaa &quot;1 bbb 1&quot;...

Как удалить подстроку, заключенную между символами [ и ]
Здравствуйте! Подскажите, как с помощью регулярных выражений можно из строки удалить подстроку,...

Как удалить текст между опредедёнными символами?
Допустим между символами @ и # (расположенными в разных строках текста!) необходимо удалить весь...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru