如何匹配正则表达式中的否定词

时间:2014-11-05 22:27:58

标签: html regex

无论好坏,我需要使用正则表达式执行以下操作:

匹配开头和结尾textarea html标签之间的所有内容:

Other HTML 
<textarea id = foo class = 'bar'> 

some text which can include brackets> like that 

<thi is an opening bracket > that was a closing one 

</textarea>
Other HTML

到目前为止我得到的正则表达式如下,除了它不会一直到结尾的textarea

<textarea id = foo[^>]+>[^>]+>

我们使用的是专有系统,我们没有其他选择。在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

这是我能提出的最简单的模式:

<textarea[^>]*>(.*?)<\/textarea>

Demo。如果您的工具允许,请使用s选项或在模式的前面添加(?s)。如果不是,请将.替换为[\s\S]作为解决方法。

这使用了非定量量词。

标记的内容将在第一个(也是唯一的)组中捕获。

答案 1 :(得分:0)

使用

perl -0777ne 'print $& if /<textarea .*?textarea>/s' file.txt 

输出:

<textarea id = foo class = 'bar'> 

some text which can include brackets> like that 

<thi is an opening bracket > that was a closing one 

</textarea>

答案 2 :(得分:0)

我不是使用RegExp,而是使用一些简单的vanilla JavaScript。像这样:

function getText(){
  
var text1 = document.getElementById('text1').value;
  
document.getElementById('output').innerHTML = text1;
  
}
<textarea id="text1">Here is text with some &lt;'s and some &gt;s.</textarea><br/>
  
    <button onclick="getText()">Get the text above, store it in variable &quot;text1&quot;, and then display it below.</button><br/><br/>

<p id="output"></p>

我知道这不是你要求的,但我发现它更容易,这只是一个建议。我希望它有所帮助!