【问题标题】:Regex for words which consist tags in between正则表达式之间包含标签的单词
【发布时间】:2016-12-09 23:37:43
【问题描述】:

我有一个内容。我把段落分成了不同的行,以便我可以清楚地解释。

 <p>The most 
 i<del class="del" editid="6">m</del>por<ins class="ins">sss</ins>t<del class="del>a</del>n<ins class="ins">sss</ins>t 
 reso<del class="del">ur</del>ce 
 for all develo<ins class="ins">vvv</ins>pers 
 working with , 
 integratin<del class="del">g i</del>t
 with their 
 <ins class="ins">ssss</ins>w<ins class="ins">ss</ins><del class="del">e</del><ins class="ins">ss</ins>bsi<del class="del">te</del>s 
 and applications, 
 an<ins class="ins">sss</ins>d<del class="del"> </del>customizing
 to their needs. You can start from here. 

在此我的单词之间包含&lt;del&gt;&lt;/del&gt; and &lt;ins&gt;&lt;/ins&gt; tags。每个单词都有任意数量的&lt;del&gt;&lt;/del&gt; and &lt;ins&gt;&lt;/ins&gt; tags 标签。

我正在尝试编写一个正则表达式来识别由这些 &lt;del&gt;&lt;/del&gt; and &lt;ins&gt;&lt;/ins&gt; tags 组成的单词。

请注意,正则表达式仅突出显示带有&lt;del&gt;&lt;/del&gt; and &lt;ins&gt;&lt;/ins&gt; tags 的单词。单词可以以字母或&lt;del&gt; 标签或&lt;ins&gt; 标签开头,也可以以字母或&lt;del&gt; 标签或&lt;ins&gt; 标签结尾

这里一个词的意思是它必须在一个空格之后开始,直到找到一个空格(空格不在&lt;del&gt; and &lt;ins&gt; tags or space not between the words inside the &lt;del&gt;&lt;/del&gt; and &lt;ins&gt;&lt;/ins&gt; tags之间)

例如在内容中的单词是

  i<del class="del" editid="6">m</del>por<ins class="ins">sss</ins>t<del class="del>a</del>n<ins class="ins">sss</ins>t 

  reso<del class="del">ur</del>ce

  integratin<del class="del">g i</del>t

  <ins class="ins">ssss</ins>w<ins class="ins">ss</ins><del class="del">e</del><ins class="ins">ss</ins>bsi<del class="del">te</del>s

  an<ins class="ins">sss</ins>d<del class="del"> </del>customizing

如何编写正则表达式来识别具有此类条件的单词。请帮忙。

【问题讨论】:

  • 你试过了吗?
  • @Rao 我对正则表达式很陌生。我尝试了一些东西,我猜这是不正确的regex101.com/r/wJ9rL3/1。它没有识别所有情况,特别是具有多个 标签的单词

标签: javascript jquery regex


【解决方案1】:

Regex101

text = ['<p>The most '
    ,' i<del class="del" editid="6">m</del>por<ins class="ins">sss</ins>t<del class="del>a</del>n<ins class="ins">sss</ins>t '
    ,' reso<del class="del">ur</del>ce '
    ,' for all develo<ins class="ins">vvv</ins>pers '
    ,' working with , '
    ,' integratin<del class="del">g i</del>t'
    ,' with their '
    ,' <ins class="ins">ssss</ins>w<ins class="ins">ss</ins><del class="del">e</del><ins class="ins">ss</ins>bsi<del class="del">te</del>s '
    ,' and applications, '
    ,' an<ins class="ins">sss</ins>d<del class="del"> </del>customizing'
    ,' to their needs. You can start from here.'
].join('\n');
text.match(/(\s|^)(\S{0,}<(del|ins).*>(.*)<\/(del|ins)>\S{0,})(\s|$)/g);

结果:

Array 
0 " i<del class="del" editid="6">m</del>por<ins class="ins">sss</ins>t<del class="del>a</del>n<ins class="ins">sss</ins>t "
1 " reso<del class="del">ur</del>ce "
2 " develo<ins class="ins">vvv</ins>pers "
3 " integratin<del class="del">g i</del>t "
4 " <ins class="ins">ssss</ins>w<ins class="ins">ss</ins><del class="del">e</del><ins class="ins">ss</ins>bsi<del class="del">te</del>s "
5 " an<ins class="ins">sss</ins>d<del class="del"> </del>customizing "
length 6

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-05-24
  • 2014-04-10
  • 1970-01-01
  • 2018-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多