好的,我知道正则表达式并不是最好用的,但我相信除了编写完整的解析器和语法检查以及所有内容之外,它是最好的。
我想编写一个正则表达式,以便按特定顺序匹配尽可能多的令牌,并编写另一个正则表达式,以便在句子中以任意顺序匹配尽可能多的令牌。
例如,我编写了一个正则表达式,用于按顺序匹配单词,如:
(?=.*?(I|need|your))(?=.*?(help|assistance|support|with|this|regex)).*?(?:\?)
并匹配:
I think I need your help?
I need your assistance with this regex?
I don't want your support.
但问题是它只匹配第一句中的“我”和“帮助”。 在第二句中,它只匹配“我”和“援助”。
我正试图弄清楚如何让它尽可能多地匹配尽可能多的关键字:
第一句话的“我”,“需要”,“帮助”。 第二句话中的“我”,“需要”,“帮助”,“带”,“此”,“正则表达式”。但与此同时我不希望它匹配如下:
“需要”,“我”,“有”,“协助”,因为它不符合规定。
有没有办法可以做到这一点?我通常使用http://regex101.com/测试我的正则表达式并使用g
作为标志,但我无法弄清楚如何编写这样的正则表达式。
我能够使用"\\b[A-Za-z0-9-_]+\\b"
对该句子进行标记。
任何提示?
答案 0 :(得分:0)
首先使用正则表达式进行标记。然后,您可以检查它是否是带有这些apis https://www.google.com/#q=dictionary+api
之一定义的有效单词