Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用关键字的正则表达式的问题_Regex - Fatal编程技术网

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

Regex 使用关键字的正则表达式的问题,regex,Regex,我有一个字符串,我想识别花的特征,但是前面没有特殊的词,因为它们改变了搜索的方向 我有以下花的特征(单词或缩写): 转换“不匹配”中任何特征的关键字可以是整词或缩写,例如: ((stem|(lf\.?|leaf)|(spe\.?|special)). 通过此配置,我得到以下正则表达式: (?<!((stem|(lf\.?|leaf)|(pe\.?|petal))([\s])*)((bful\.?|beautiful)|(cful\.?|colorful)| (spe\.?|special

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

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

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

((stem|(lf\.?|leaf)|(spe\.?|special)).
通过此配置,我得到以下正则表达式:

(?<!((stem|(lf\.?|leaf)|(pe\.?|petal))([\s])*)((bful\.?|beautiful)|(cful\.?|colorful)| (spe\.?|special))
(?
现在!问题是当我们在缩写或单词“非特殊”的结尾处得到缩写(功能启用)时。例如:

“我有一朵美丽的玫瑰” 在本例中,“beautiful”不是特征,因为“spe.”在“beautiful”之前,这是一个正确的答案,但我对“spe”这个词有疑问。因为我的应用程序将“pe”识别为“pretty”,并将其解释为特征


我尝试在关键字的前后加入
\b
,但没有效果。有人知道在这种情况下可以做什么吗?我感谢你能给我的所有帮助。

看起来你需要逃逸句点,所以它是作为句点匹配的,而不是“任何字符”。没有“\”的“.”表示“任何字符”

例如,你应该写

(pe\.?|pretty)

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

嗯……您可以格式化它以区分代码和单词,并稍微修改一下语法吗?我很难理解您的问题。非常感谢您的回答。我有一个选项可以帮助解释正则表达式,写“\b”黑名单前后,特征前后写“\b”。效果很好!!匹配正确的单词。
(pe\.?|pretty)