作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我试图不匹配句子中的否定词,例如形容词与not,never
。目前我使用字符级否定。 不
的示例 ^(?:[^n]+|n(?:$|[^o]|o(?:$|[^t]|\w)))
。对于一个或多个否定词(not, never, any, nobody, ......
)是否有一种简单的方法(更具可读性)?这是not
否定的代码:
package main
import(
"fmt"
"regexp"
)
func main (){
sentence:="he is not satisfied"
re := regexp.MustCompile(`^(?:[^n]+|n(?:$|[^o]|o(?:$|[^t])))\ssatisfied`)
fmt.Println(re.FindAllString(sentence, -1))
sentence="he is satisfied"
fmt.Println(re.FindAllString(sentence, -1))
}
谢谢
最佳答案
不幸的是,出于性能原因(尽管 Go 正则表达式解析器的性能不是特别好),Go 的正则表达式包不支持前瞻/后视,因此没有很好的方法可以使用正则表达式来做到这一点。
尽管如此,正则表达式并不适合这种情况。它需要非常复杂的表达式来进行非常简单的匹配。如果我要实现类似的东西,我可能只会在空格/标点符号上拆分字符串并进行自己的匹配。更易于使用并且可能具有更好的性能。
关于regex - 不匹配句子中否定词的更易读的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45217891/
我是一名优秀的程序员,十分优秀!