我需要一个正则表达式来匹配以下内容:
字符串:“Hello #world 这是#party time#”
匹配:“world”和“party time”
在玩正则表达式时,我只能匹配一个或另一个,但不能同时匹配。这甚至可能吗?
没有解决方案,您现在设置它的方式。使用 # 作为“止损”与想要匹配非空格单词和空格单词之间存在歧义。问题是空格..它既是有效字符又是无效字符,具体取决于值,并且没有其他方法可以判断哪个是哪个。
你不能把它分解成多个正则表达式。如果您第一次尝试这样做#([^#]+)
,它将匹配#world
和#party
. 如果您尝试先做#([^#]+)#
,它将匹配world it is
. 即使您对组合进行负面回顾,#((?:(?<!\b).)+)#
您也会匹配world it is #party time
要解决此问题,您必须执行以下任一操作
#([^#]+)#
#([^\b]+)
(这可能会根据你交换空间的内容而有所不同)