如何匹配正则表达式?

时间:2014-11-30 09:36:29

标签: html regex

我有两个正则表达式:

selected.*(?<=value=)(['"])(.*)\1

(?<=value=)(['"])(.*)\1(?=.*selected)

另外它们工作正常,但我需要一个匹配第一个或第二个的正则表达式。替代标志|这里没用。

我怎么能在一个正则表达式中匹配?

输入:

<option selected value="a">a</option>
<option value="b">b</option>

<option selected value="a">a</option>
<option value="b" selected>b</option>

第一个正则表达式匹配第一个输入中的'a',第二个正则表达式匹配第二个正则表达式中的'b',但是当我将两个正则表达式与替代符号组合时,新的正则表达式在两个输入中都不匹配。

1 个答案:

答案 0 :(得分:3)

这个正则表达式适用于两种情况而不使用替换,即|

(?=.*?selected).*?(?<=value=)(['"])(.*?)\1

如果这些标签可以转到多行:

(?=[^>]*\sselected\b)[^>]*(?<=value=)(['"])([^>]*?)\1

RegEx Demo