我的正则表达式有些问题。我想在注释之前检索字符串。此字符串可以用引号括起来,也可以不用引号括起来。你知道吗
如果我把#(注释)放在引号中,我希望它是字符串而不是注释。你知道吗
下面是我的正则表达式:
[\"']?(.*?)[\"']?\s*(#.*)
下面是此正则表达式的一些函数示例:
"test" # comment ---> group1: test group2: # comment
test # comment ---> group1: test group2: # comment
以下是我遇到的问题,我不明白:
"t#est" # comment ---> group1: t group2: #est" # comment
我想要group1: t#est
group2: # comment
事先谢谢你的帮助。你知道吗
你让开始/结束引号可选,但不一致。他们要么都在,要么都不在。它们应该匹配,
"a'
不是正确的字符串。你知道吗用引号括起来的字符串是
\"[^\"]*\"|'[^']*'
。注释前面没有引号的字符串是[^#]*
。你知道吗这使得我们的总正则表达式:
您应该捕获初始引号(如果有的话),然后稍后使用backreference来确保如果匹配了第一个
'"
,那么在匹配的末尾#
之前需要'"
:https://regex101.com/r/Rpb5wL/1
(请注意,由于现在捕获了初始引号,因此您必须更改使用结果组的代码来说明这一点—例如,
#
部分现在将位于第3组,而不是第2组)相关问题 更多 >
编程相关推荐