我尝试使用js正则表达式获取以下内容:
string</span>string</span>string</span>theStrngIWant
在一个句子中,我尝试获取最后一个字符之后的所有字符,包括换行符 </span>
我尝试了这种模式/<\/span>((.|\n)*)/i
,我知道该模式将不起作用,我只想显示我想要捕获的内容:
所以在最后一个之后,</span>
我想捕获.
令牌中包含的所有内容,并且因为它不包含我添加的新行\n
,所以我认为可以使用greedy而不用?
因为它的字符串结尾也可以,还请注意,我确实尝试了否定的前瞻性。
如果有人知道这种情况下的任何正则表达式,我将非常感激。
首先,如果您决定使用正则表达式解析任何生产/重要代码的HTML,就会遇到麻烦。
就是说,出于非关键的粗略编辑目的,HamZa的模式效果很好。这是经过测试的JavaScript函数形式的稍微更复杂(但更有效)的模式:
function processText(text) {
/* # Capture in $1, everything following last SPAN element.
<\/span\s*> # Last SPAN close tag.
( # $1: Everything after last SPAN.
[^<]* # Zero or more non start-of-tag chars.
(?: # Zero or more non-SPAN tags.
< # Allow start of any HTML tag, but
(?!\/?span\b) # only if not start a SPAN tag.
[^<]* # Zero or more non start-of-tag chars.
)* # End zero or more non-SPAN tags.
) # End $1: Everything after last SPAN.
$ # Anchor to end of string.
*/
var re = /<\/span\s*>([^<]*(?:<(?!\/?span\b)[^<]*)*)$/i;
var m = text.match(re);
return (m) ? m[1] : '';
}
正则表达式也以自由行距模式(多行注释)显示,其中缩进和注释描述了每个叮咬大小的正则表达式块。
关于如何写一个好的正则表达式的详细信息,我建议在阅读tuorial:regular-expressions.info/。如果您想成为正则表达式专家,那么阅读以下内容将对您有帮助:掌握正则表达式(第3版)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句