[英]How do I exact match all the words in a string includes those ends with '!,?.'"' but do not match those with any other punctuation using regex?
例如,如果我要搜索的模式是apple
我要搜索的字符串是apple apple@323 apple.. apple??...?? apple??%% Ilovesapple
apple apple@323 apple.. apple??...?? apple??%% Ilovesapple
预期匹配:
apple
apple..
apple??...!!
我想匹配所有确切的单词,唯一的例外是单词以,?..'"
中的标点符号结尾
这是你想要的吗?
\bapple[!,?.'\"]*(?=\s+|$)
\b
'apple' 的单词边界apple
你要搜索的模式[,?..'\"]*
要匹配的特殊字符在末尾出现零次或多次(?=\s+|$)
正向预测以确保匹配的单词后跟空格或行尾。如果您在“apple”之前不允许任何非空格字符,则另一种可能性是:
(?:\s+|^)(apple[!,?.'\"]*)(?=\s+|$)
正则表达式演示请注意@apple?
不匹配,因为它以@
开头
请参阅Group 1
的比赛
(?:\s+|^)
非捕获组,用于空白或“苹果”之前的行首
(
捕获组的开始(捕获到第 1 组)
apple
你要搜索的模式[,?..'\"]*
要匹配的特殊字符在末尾出现零次或多次 )
捕获组结束(捕获到第 1 组)
(?=\s+|$)
正向预测以确保匹配的单词后跟空格或行尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.