用Reg

时间:2015-06-15 13:54:36

标签: regex

抱歉,我不是注册专家。我想请求帮助如何从字符串中取出某些单词。

这是一个例子,我有一个像这样的长字符串:

   [SubClassOf(<file:F:/Projects/OIL/DAMLOilEd/ontologies/ka.daml#Lecturer> <file:F:/Projects/OIL/DAMLOilEd/ontologies/ka.daml#Person>)] 

我需要从长字符串中提取Lecturer和Person这两个词。该注册表将执行以#开头并以>结尾的内容。

3 个答案:

答案 0 :(得分:1)

#>之间的任何内容:

'(?<=#)[^#>]*(?=>)'

这将匹配#内的所有内容(>#>除外),结果不会包括#>并结束。

答案 1 :(得分:1)

假设您想要检测这两个字符之间的任何单词,正则表达式将是:

 #[^#>]*>

这将匹配#>之间的所有内容,包括#>本身。它假设单词本身不包含#>

答案 2 :(得分:1)

改善@Jahid的答案。使用:

it.only('should work', function () { var spy = sinon.spy(); $q.when().then(spy); $rootScope.$apply(); spy.should.have.been.called; $timeout.verifyNoPendingTasks(); });

括号分别是lookbehind和lookahead assertions

主要类(方括号)匹配除(?<=#)[^#>]+(?=>)#个字符

之外的所有内容