正規表現に頭を悩ませている問題がいくつかあります。
次のタイプの文字列があり、データを解析/取得する必要があります
'Account'.Search = "[Id] is NULL OR NAME = ""0%"""
'Account'.Sort = "NAME, Address"
'Bank Objectives'.Search = "[Active Flg] = "Y""
'Bank'.Search = "[Id] is NULL"
'Bank'.Sort = "Transit"
'Bank Goals'.Search = "[Active Flg] = 'Y'"
.......
次の式が機能するようです
\s*(?:(?<search>(?:(=['"])?(?:.*)\1|.*)\.Search[^"']*(?:(=['"])?(?:.*)\1|.*))\s*$?(?<sort>(?:(=['"])?(?:.*)\1|.*)\.Sort[^"']*(?:(=['"])?(?:.*)\1|.*))?\s*$?)
そして、私は次のような出力を得ることができます
search: 'Account'.Search = '[Id] is NULL OR NAME = ''0%'''
sort: 'Account'.Sort = "NAME, Address"
search: 'Bank Objectives'.Search = "[Active Flg] = "Y""
search: 'Bank'.Search = "[Id] is NULL"
sort: 'Bank'.Sort = "Transit"
search: 'Bank Goals'.Search = "[Active Flg] = 'Y'"
ただし、入力文字列に改行がない場合は、取得を開始します
search: 'Account'.Search = '[Id] is NULL OR NAME = ''0%''''Account'.Sort = "NAME, Address"
入力文字列から私が本当に基本的にしているのは
Account
Search = "[Id] is NULL OR NAME = ""0%"""
Sort = "NAME, Address"
Bank Objectives
Search = "[Id] is NULL OR NAME = ""0%"""
Sort = ""
.....
また、(=['"])?(?:.*)\1|.*)
引用符に一致すると思われますが、どちらも機能していないようです。
最終的な目標は、文字列を式エディターに渡し、[Id] IS NULL or Name =""0%"""
ユーザーが変更できるようにしてから、文字列全体の検索部分を更新することです。そのため、ユーザーが で始まるアカウント名bob
が必要な場合は、生成する必要があります
'Account'.Search = "Name like 'bob%'"
'Account'.Sort = "NAME, Address"
'Bank Objectives'.Search = "[Active Flg] = "Y""
'Bank'.Search = "[Id] is NULL"
'Bank'.Sort = "Transit"
'Bank Goals'.Search = "[Active Flg] = 'Y'"
.......
私はすでにその作品を構築しています。複数のエントリを持つことができるこの文字列を解析しています。また、文字列には次を含めることができます
"Name like 'bob%'"
したがって、それが実際にあると想定されていたことを理解するのは私に任されています
'Account'.Search = "'bob%' のような名前"
したがって、入力文字列が正規表現と一致するかどうかを知る必要があります