正则表达式找到<或者>不是<<或>>

时间:2017-01-24 09:12:48

标签: regex

我正在努力构建匹配<的正则表达式或者>但不是<<或>>

非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

使用以下正则表达式:

(?<!>)>(?!>)

它使用负面后瞻(?<!)和否定前瞻(?!)来匹配单个>

你可以try it out here in PHP。它不适用于JavaScript,因为它不支持负面的lookbehind。

您也可以使用此正则表达式,它不需要前瞻或后观,但匹配表达式周围的下一个字符。它也将在文档的开头和结尾处起作用:

(?:[^>]|^)>(?:[^>]|$)

var text1 = "nflasnfksalnlk>>lkdmglksanl";
var text2 = "nflasnfksalnlk>lkdmglksanl";
var text3 = ">nflasnfksalnlklkdmglksanl>";
var regex = /(?:[^>]|^)>(?:[^>]|$)/g;

console.log(text1.match(regex));
console.log(text2.match(regex));
console.log(text3.match(regex));

答案 1 :(得分:1)

表达式

你正在寻找的正则表达式,包括你对masadwin评论的回应是:

(?<!<)<(?!<) or (?<!>)>(?!>)

您可以查看this demo

解释

  • (?<!<)<(?!<)不允许开出一个有角度的支架,引导或落后另一个。
  • or完全匹配“或”文字。
  • (?<!>)>(?!>)这里与开口斜角支架相同,但是对于收尾支架。