在给定的字符串中,开发一个模式以匹配字母“b”的任何出现,其中它不应该跟在字母“a”之后。
例如:
abc或ab 不匹配, b ba,bb,cba 应匹配。
我尝试了以下正则表达式:
**/(?!.*ab)(?=.*b)^(\w+)$/**
foll输入工作正常:
abba
dbcd
bacdba
bacd
adfjldb
dkfjb
abdfdsba
但是好像我把输入放在一行中,如:
ab ba abdkfjdk bacdk dkekfba
它与单词不匹配。
答案 0 :(得分:0)
如果您想匹配任何不在“a”之后的字母“b”的出现。即,“b”不应该在“a”之后,但“a”可以在“b 之后,你可以使用这个使用negative lookbehind的正则表达式:
<强>解释强>
(?<!
a
)
b
答案 1 :(得分:0)
您的问题描述与您的样品不符。你说问题是:
在给定的字符串中,开发一个匹配任何匹配项的模式 字母“b”,其中“b”不是字母“a”。
那只是
Set<String> set =
prop.entrySet().stream()
.map(e -> (String)e.getValue())
.flatMap(Pattern.compile(pattern)::splitAsStream)
.collect(Collectors.toSet());
string interpolator,所需的匹配为绿色。
然而,您的样本意味着另一个问题。他们暗示正确的问题描述必须是:
在给定字符串中,开发一个模式以匹配包含的任何单词 字母“b”,除非“b”跟在字母“a”之后。
这将是
[^a](b)
See here,所需的匹配为绿色。