【发布时间】:2012-01-03 16:32:48
【问题描述】:
我是 regex 的新手,但在从列表中排除单词时遇到问题
正则表达式:
(?<=[\s,*])[A-Za-z]\w*(?=[\s,*=;])
数据:
keyword1 Apple
keyword2 Beer=0
keyword1 China, Dime, Egg, Fly, Google, Koala, Lime
结果:
Apple
keyword2
Beer
keyword1
China
Dime
Egg
Fly
Google
Koala
Lime
我期望的结果很简单 Apple Beet China Dime Egg Fly Google Koala Lime
这个想法是: 如果我找到一个关键字 1 或关键字 2,则收集“下一个”字词 如果“下一个”单词用逗号 (,) 分隔,则收集逗号中的每个单词。 但不要在结果中包含关键字。
我已经尝试了一整天,但最后我意识到我需要帮助..
问候,
渡轮
【问题讨论】:
-
你说A可以是苹果,B可以是啤酒等等。那么
Apple and unwantedword和beer and theunwantedwords有什么区别呢? -
抱歉混淆(我会解决这个问题),不需要的单词将在行首,它实际上需要的规则是:如果我找到不需要的单词然后找到“下一个”单词如果“下一个”单词除以逗号 (,),则在不需要的单词之后,然后捕获逗号中的每个单词。
-
Regex 有很多方言,每个方言都可能有自己特殊的转义序列:posix regex、perl regex、python regex、emacs regex...那么您使用哪种方言? (尽管它们共享所有一些原则,例如字符类)
-
嗨,数学,你是对的.. 我使用 .Net 方言学习那些正则表达式,不幸的是我将它用于 Qt,我意识到(刚才)这是不同的。现在我正在尝试为 (?
-
小软件提示:ultrapico.com/Expresso.htm - Expresso,一个快速编写和测试正则表达式的小工具。您也可以在那里更改正则表达式方言。 Afaik QT 使用 C++ 方言!?虽然不确定,但你可以试一试。
标签: regex