[英]Match regex pattern in a line of text without targeting the text within quotations
[英]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.