我必须得到以="
开头并以下一个"
结尾的字符串。但它应包含<
符号。
(="([^"])*<*")
字符串:
dit niet "dit wel" dit ook niet ="maar <dit ""en""dit ook"
REM dit niet "dit <wel" dit ook niet ="maar dit ""en""dit ook"
dit niet "dit wel" REM "maar dit ""en""dit ook"
上面的代码给了我两个字符串,我只需要在下面提到一个。
预期结果:
="maar <dit "
实际结果:
="maar <dit "
="maar dit "
注意:
需要获取以="
开头并且<
开头的所有结果,并以下一次"
答案 0 :(得分:3)
您的="([^"])*<*"
正则表达式匹配="
,然后它会重复捕获"
以外的任何字符(这样只有最后一次出现的字符才能保存在第1组缓冲区),然后零个或多个<
个符号,然后是"
。因此,您的正则表达式并非真正要求 <
出现在您匹配的字符串中。
您可以使用
="([^"<]*<[^"]*)"
请参阅regex demo
详细:
="
- ="
序列([^"<]*<[^"]*)
- 包含值的第1组:
[^"<]*
- 除"
和<
以外的零个或多个字符<
- <
符号[^"]*
- 除"
"
- 双引号答案 1 :(得分:2)