Regex-Match, игнорируя символ из Поискового слова - PullRequest
0 голосов
/ 10 июля 2019

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

В коде я могу использовать регулярные выражения.

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

".*(concrete).*";

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

".*(@VARIABLE1).*";

(Синтаксис с @ работает в программе между прочим.) Проблема в том, что: если я устанавливаю переменную как конкретную, программа автоматически переключает ее на 'concrete'. Очевидно, слово конкретное больше не может быть найдено, так как поисковый термин теперь содержит два символа в начале и в конце.

Есть ли способ игнорировать эти два символа, используя правильное регулярное выражение?

я хочу сделать следующее: Если строка в базе данных содержит «25см бетона серого цвета» Я должен получить совпадение с регулярным выражением. с помощью searchterm ".*(concrete).*"; он работает, с переменной ".*(@VARIABLE1).*"; - нет.

EDIT:

вся "Формула" в программе выглядит так:

if(Match(QTO(Typ:="Attribut{FloorsLayer_02_MaterialName}");".*(@V_QUALITY).*" ;"regex") ;QTO(Typ:="Attribut{Fläche}");0)

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

1 Ответ

0 голосов
/ 10 июля 2019

Это скорее взлом, чем реальное решение, и я не уверен, работает ли оно вообще:

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

.*(@VARIABLE1)?).*

и строка ?concrete(

это приведет к тому, что регулярное выражение будет выглядеть так:

.*('?concrete(')?).*

, что делает дополнительные символы необязательными.


При этом используется следующее предположение:

строка (@VARIABLE1) заменяется на ('<content of VARIABLE1>')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...