bmw318mt Ответов: 2

Регулярное выражение для языка Си#


Привет,

Мне нужно проверить строку с помощью регулярного выражения, строка, как показано ниже, где формулировка может быть разной (также по длине), но самые важные вещи-это . и _

GOOD
FW2.PLANT_DEV.APPNAME.REQUEST.*.*
FW2.PLANT_DEV.APPLICATION.REQUEST.*.*
FW2.PLANT_DEV.APPLICATION.REPLY.*.*
FW2.PLANT_PRD.APPNAME.REQUEST.*.*
FW2.PLANT_PRD.APPNAME.REQUEST.TYPE.*
FW2.PLANT_PRD.APPNAME.REQUEST.TYPE.NAME-001
FW2.PLANT_PRD.APPNAME.REQUEST.*.NAME
PLANT_DEV.APPLICATION.REQUEST.*.*
PLANT_DEV.APPLICATION.REPLY.*.*
PLANT_PRD.APPNAME.REQUEST.*.*
PLANT_PRD.APPNAME.REQUEST.TYPE.*
PLANT_PRD.APPNAME.REQUEST.TYPE.NAME
PLANT_PRD.APPNAME.REQUEST.*.NAME

NOT GOOD
FW2_SITE_DEV.APPNAME.REQUEST.*.*
FW2_PLANT_DEV.APPNAME.REQUEST.*.*
FW2.SITE.DEV.APPNAME.REQUEST.*.*
FW2.SITE_DEV.APPNAME.REQUEST
B2K_DEV.APPNAME.REQUEST.*.*
B2K.DEV.APPNAME.REQUEST.*.*


Какая-нибудь помощь по этому поводу, пожалуйста?

Что я уже пробовал:

Пока ничего такого что привело бы к успешному регулярному выражению

([a-zA-Z0-9]+.{1})?\w*_{1}([^_\W]*.{1})([^_\W]*.{1})([^_\W]*.{1})(\*.{1})(\*{1})

2 Ответов

Рейтинг:
2

OriginalGriff

Это зависит от того, что именно вы ожидаете в строке: материал, который определяет действительность / недействительность.
И расплывчатое "самое главное-это то . и _" не очень конкретно, учитывая, что один пример содержит четыре символа". "и один символ"_"
Но, предполагая порядок и только первое". " важно:

^\w+?\.\w+_[\w\.\*]+$

Получить копию Экспрессо[^] - это бесплатно, и он проверяет и генерирует регулярные выражения.


[no name]

Какое выражение вам нужно? Каков ваш ожидаемый результат ?

bmw318mt

ХОРОШИЙ
FW2.PLANT_DEV.APPNAME.REQUEST.*.*
FW2.PLANT_DEV.ПРИЛОЖЕНИЕ.ЗАПРОС.*.*
FW2.PLANT_DEV.ПРИЛОЖЕНИЕ.ОТВЕТ.*.*
FW2.PLANT_PRD.APPNAME.REQUEST.*.*
FW2.PLANT_PRD.ИМЯ_ПРИЛОЖЕНИЯ.Запрос.Тип.*
FW2.PLANT_PRD.APPNAME.REQUEST.TYPE.NAME-001
FW2.PLANT_PRD.ИМЯ_ПРИЛОЖЕНИЯ.Запрос.*.Название
PLANT_DEV.ПРИЛОЖЕНИЕ.ЗАПРОС.*.*
PLANT_DEV.ПРИЛОЖЕНИЕ.ОТВЕТ.*.*
PLANT_PRD.APPNAME.REQUEST.*.*
PLANT_PRD.ИМЯ_ПРИЛОЖЕНИЯ.Запрос.Тип.*
PLANT_PRD.ИМЯ_ПРИЛОЖЕНИЯ.Запрос.Тип.Название
PLANT_PRD.ИМЯ_ПРИЛОЖЕНИЯ.Запрос.*.Название

НЕ ХОРОШИЙ
FW2_SITE_DEV.APPNAME.REQUEST.*.*
FW2_PLANT_DEV.APPNAME.REQUEST.*.*
FW2.SITE.DEV.APPNAME.REQUEST.*.*
Fw2 по.SITE_DEV.ИМЯ_ПРИЛОЖЕНИЯ.Запрос
B2K_DEV.APPNAME.REQUEST.*.*
B2K.DEV.APPNAME.REQUEST.*.*

OriginalGriff

У вас будут реальные проблемы, делая это с регулярным выражением:
PLANT_DEV.ПРИЛОЖЕНИЕ.Запрос.*.* разрешен
B2K_DEV.APPNAME.REQUEST.*.* не допускается.
Не существует универсального решения, которое могло бы увидеть разницу между ними без учета длины, а затем
FW2.PLANT_DEV.Применение.ответ.*.* разрешено, так что длина может и не помочь.

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

[no name]

Я думаю, что вы не получите никакого конкретного регулярного выражения для этого. Вы должны сгенерировать регулярное выражение в соответствии с вашими требованиями. Существует множество веб-сайтов для генерации регулярных выражений. Вы можете погуглить.

Рейтинг:
1

Patrice T

NOT GOOD
FW2_SITE_DEV.APPNAME.REQUEST.*.*
FW2_PLANT_DEV.APPNAME.REQUEST.*.*
FW2.SITE.DEV.APPNAME.REQUEST.*.*
FW2.SITE_DEV.APPNAME.REQUEST
B2K_DEV.APPNAME.REQUEST.*.*
B2K.DEV.APPNAME.REQUEST.*.*

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

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению:
Regexper[^]