我想完全匹配两个字符串,并使用正则表达式捕获子字符串bbbxxx
作为一个组。xxx
是未知的和可变的。
aaaxxxbbbxxxddd
aaaxxxddd
我最接近的是像这样的(aaa).*?(bbb.*?)?.*
,但一旦我把?
放在组后面,它就不再被捕获了。
下面是真实世界的例子:https://regex101.com/r/MAxJix/1我想保持组从第一个字符串,但正则表达式应该匹配@id="myLabel"
在第二个字符串,太(但不捕获到组)。
谢谢!
您可以将此正则表达式用于可选的捕获组:
^@(?:id|class)="[^"]*?( on[a-z]*=[^"]*)?"
RegEx演示
正则表达式解释:
^
: Start@
: Match a@
="
:匹配="
[^"]*?
:匹配0或非"
字符(惰性)( on[a-z]*=[^"]*)?
:可选捕获组,匹配空格+on<lowercase letters>=
+ 0或任何非"
字符"
:匹配关闭"
(?:id|class)
:匹配id
或class
这对您的用例有效吗?
(@id=|@class=).*?( on[a-z]*?=.*)[",',`]|@id=Ww+W