繁体   English   中英

正则表达式选择报价内的数据

[英]Regex select data within quotations

我有一个字符串: "var1=\\"Some Data\\";var2=\\"More Data\\" ,我想选择引号内的数据以及其左侧的数据(变量名)。

例如:

"var1" = "Some Data", "var2" = "More Data"

这些命令以分号分隔,并且变量的值始终包含在引号中。 但是,变量是基于用户输入的,也可以包含其他引号或分号。 我试图用Split和Substring来做到这一点,但是它们受到用户输入的影响。 在不受用户输入影响的情况下,我将如何做?

编辑:我没想到要提到我已经有一个表达式来选择引号内的数据。 但是,我对Regex不够熟悉,无法使其也选择变量名。 当前的Regex表达式是: (\\".*\\")

我决定使用的正则表达式是: ;(?=(?:[^\\"]*\\"[^\\"]*\\")*[^\\"]*$) 。选择整个命令( variableName="Hello World" ),然后使用Substring在等号之前和之后选择数据。然后使用trim删除引号。它工作得很好,并且我能够使用在主引号中转义的引号。

我不相信该Regex命令。 我在网上某个地方找到了它(当我记得在哪里时会在这里发布)。

无论如何,感谢您提供的所有答案和链接。

我相信这会满足您的要求:

"(.+)"\s?=\s?"(.+)"

例如: Regex Hero

正则表达式量词+*在默认情况下是贪婪的,将寻找最长的匹配项。

您可以添加其他测试用例,在带引号的字符串和=之间添加更多或没有空格,以确保它可以满足您的需求。

编辑:这对同一行上的多个实例不起作用,因为它依赖于量词的贪婪性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM