我有一个字符串:"var1=\"Some Data\";var2=\"More Data\"
,我想选择引号内的数据以及左边的数据(变量名)。
例如:
"var1" = "Some Data",
"var2" = "More Data"
命令采用分号分隔,变量的值始终包含在引号内。但是,变量基于用户输入,也可能包含其他引号或分号。我试图使用Split和Substring执行此操作,但是它们受到用户输入的影响。如果不受用户输入的影响,我该怎么做?
编辑:
我没想到提到我已经有一个表达式来选择引号内的数据。但是我对Regex不太熟悉,因为它也选择了变量名。当前的Regex表达式为:(\".*\")
答案 0 :(得分:1)
我决定使用的正则表达式为:;(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)
。这将选择整个命令(variableName="Hello World"
),然后使用Substring选择等于之前和之后的数据。然后我使用trim来删除引号。它工作得很好,我能够使用在主要报价中转义的报价。
我不相信Regex命令。我在网上找到了它(当我记得在哪里时,我会在这里发布)。
感谢所有的答案和链接。
答案 1 :(得分:0)
我相信这会做你以后的事情:
"(.+)"\s?=\s?"(.+)"
示例:Regex Hero
默认情况下,正则表达式量词+
和*
是贪婪的,并且会查找最长的匹配。
您可以在引用的字符串和=
之间添加更多或没有空格的其他测试用例,以确保它能满足您的需求。
编辑:这不适用于同一行的多个实例,因为它依赖于量词的贪婪。