我尝试在负号-
之前的字符串中输入任何字母数字或文字,例如:
earth-green, random-stuff, coffee-stuff, another-tag
我尝试匹配earth random coffee another
我尝试了以下正则表达式:
(\w*[^][\-])
但是,它匹配earth- random- coffee- another-
This DEMO显示了这种情况。在那里你可能会注意到earth- random- coffee- another-
突出显示,而我不想在突出显示中包含负号-
。
答案 0 :(得分:2)
这是使用正向前瞻性正则表达式的一个很好的例子。
你可以使用这样的正则表达式:
(\w+)(?=-)
<强> Working demo 强>
另一方面,你的正则表达式中的问题是你把supn和^放在了捕获组中:
(\w*[^][\-])
^---^---- Here (btw... you don't need [^])
你必须使用这个
(\w+)-
<强> Working demo 强>
答案 1 :(得分:1)
答案 2 :(得分:0)
>>> x = 'earth-green, random-stuff, coffee-stuff, another-tag'
>>> re.compile('(\w+)-\w+').findall(x)
['earth', 'random', 'coffee', 'another']
>>>
许多使用案例regex howtos
的好例子