use*_*530 1 javascript regex mootools
我使用以下RegEx在字符串中进行替换:
<\/?(span)\b(?:\s+class="highlight")?>
Run Code Online (Sandbox Code Playgroud)
但是这个正则表达式有一个缺陷...以此示例代码为例:
<p>
Some text here
<span class="highlight">This is highlighted</span>
<span>This is not highlighted</span>
</p>
Run Code Online (Sandbox Code Playgroud)
我的正则表达式将匹配两个span标签,虽然我只想要一个class ="highlight"设置.如何使用RegEx实现这一目标?
PS:请不要告诉我,我不应该使用RegEx,因为我会降低你的答案,因为它是偏离主题的.这是RegEx球员的问题.
编辑:基于下面接受的答案我使用以下正则表达式进行替换注意:代码是在javascript(mootools)
var regex = new RegExp("(<span[^>]+class\\s*=\\s*(\"|')highlight\\2[^>]*>)(.*?)(</span>)",'g');
var replaced = element.get('html').replace(regex, "$3");
element.set('html', replaced);
Run Code Online (Sandbox Code Playgroud)
上面的正则表达式将在这里用"some text here"替换一些文本(没有双引号)
这应该给予最大的灵活性.
(<span[^>]+class\s*=\s*("|')highlight\2[^>]*>)[^<]*(</span>)
Run Code Online (Sandbox Code Playgroud)
更新:
打开和关闭标记所需的捕获组是\ 1和\ 3.
| 归档时间: |
|
| 查看次数: |
10120 次 |
| 最近记录: |