正则表达式:忽略后面的字符

时间:2017-07-10 19:15:53

标签: regex

我想知道如何忽略跟随正则表达式中特定模式的字符。 我尝试了积极的前瞻,但他们没有工作,因为他们保留了其他比赛的那些角色,而我希望他们只是......丢弃。

例如,我的正则表达式的一部分是:(?<DoubleQ>\"\".*?\"\")|(?<SingleQ>\".*?\") 为了匹配这个字符串的一些“关键部分”:

This is a ""sample text"" just for "testing purposes": not to be used anywhere else.

我想要捕获整个""sample text"",但之后我只想“提取”sample texttesting purposes一样。也就是说,我希望该组匹配为""sample text"",但我希望完整匹配为sample text。我通过使用\K选项部分实现了这一点:

(?<DoubleQ>\"\"\K.*?\"\")|(?<SingleQ>\"\K.*?\")

这会忽略完整匹配中的第一个""(或"),但在匹配组时会将其考虑在内。如何忽略以下""")?

注意:正向前瞻不起作用:它不会从以下匹配中忽略字符,它只是在当前匹配中不包含它们。

非常感谢。

1 个答案:

答案 0 :(得分:2)

我希望我的问题是正确的。所以你想匹配整个字符串,包括引号,但是你想要只替换/提取没有引号的表达式,对吗?

您通常可以使用正则表达式replace功能提取只是匹配的一部分。

这是正则表达式:

""?(.*?)""?

这就是替换表达式:

$1