好的,我知道正则表达式不是最好的使用方法,但我相信除了编写完整的解析器和语法检查等等之外,它是最好的方法。
我想编写一个正则表达式以按特定顺序匹配尽可能多的标记,并编写另一个正则表达式以在句子中以任何顺序匹配尽可能多的标记。
例如,我编写了一个用于匹配单词的正则表达式,例如:
(?=.*?(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.
但问题是它只匹配第一句中的“I”和“help”。在第二句中,它只匹配“I”和“assistance”。
我试图弄清楚如何让它尽可能多地匹配关键字,所以:
第一句话是“我”、“需要”、“帮助”。第二句的“我”、“需要”、“帮助”、“与”、“这个”、“正则表达式”。
但同时我不希望它匹配类似的东西:
“需要”、“我”、“与”、“帮助”,因为它不按顺序排列。
有没有办法我可以做到这一点?我通常使用以下方法测试我的正则表达式:http ://regex101.com/并g
用作标志,但我不知道如何编写这样的正则表达式。
我能够使用"\\b[A-Za-z0-9-_]+\\b"
.
有什么提示吗?