抱歉,我不是注册专家。我想请求帮助如何从字符串中取出某些单词。
这是一个例子,我有一个像这样的长字符串:
[SubClassOf(<file:F:/Projects/OIL/DAMLOilEd/ontologies/ka.daml#Lecturer> <file:F:/Projects/OIL/DAMLOilEd/ontologies/ka.daml#Person>)]
我需要从长字符串中提取Lecturer和Person这两个词。该注册表将执行以#
开头并以>
结尾的内容。
答案 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。
主要类(方括号)匹配除(?<=#)[^#>]+(?=>)
和#
个字符