使用关键字的正则表达式问题

时间:2012-07-12 21:46:39

标签: regex

我有一个字符串,我想识别花的特征,而它们之前没有特殊的字,因为它们改变了搜索的方向。

我有以下花的特征(单词或缩写):

((bful\.?|beautiful)|(cful\.?|colorful)| (pe\.?|pretty))

转换“不匹配”中任何要素的关键字可以是整个字词或缩写,例如:

((stem|(lf\.?|leaf)|(spe\.?|special)).

使用此配置,我得到以下正则表达式:

(?<!((stem|(lf\.?|leaf)|(pe\.?|petal))([\s])*)((bful\.?|beautiful)|(cful\.?|colorful)| (spe\.?|special))

现在!问题是当我们在缩写或单词的末尾得到缩写(功能已启用)时。例如:

“我有一个漂亮的玫瑰”

在这种情况下,“美丽”不是特征,因为“spe。”是在“美丽”之前,这是一个正确的答案,但我有“spe”字样的问题。因为我的应用程序将“pe”识别为“漂亮”,并将其解释为特征。

我尝试在关键字之前和之后合并\b,但它不起作用。有谁知道在这些情况下可以做些什么?我感谢你能给我的所有帮助。

2 个答案:

答案 0 :(得分:0)

看起来你需要逃避这个时期,所以它被匹配为一个句号,而不是“任何字符”。 “。”没有“\”表示“任何字符”。

例如,你应该写

(pe\.?|pretty)

答案 1 :(得分:0)

你也应该使用(\ bpe。| pretty)或者它可能匹配“spe”。与模式pe。而不是用spe。