如何用正则表达式“划分”单词?

时间:2016-04-13 08:04:29

标签: python regex

我有一个句子,其中每个标记都有一个/。我想在斜线前打印我所拥有的东西。

我现在拥有的是基本的:

text = less/RBR.....
return re.findall(r'\b(\S+)\b', text)

这显然只是打印文本,如何在/之前切断单词?

3 个答案:

答案 0 :(得分:1)

简单直接:

rx = r'^[^/]+'
# anchor it to the beginning
# the class says: match everything not a forward slash as many times as possible

Python中,这将是:

import re
text = "less/RBR....."
print re.match(r'[^/]+', text)

由于这是一个对象,你可能喜欢将它打印出来,如下:

print re.match(r'[^/]+', text).group(0)
# less

答案 1 :(得分:1)

这也应该有用

\b([^\s/]+)(?=/)\b

Python代码

p = re.compile(r'\b([^\s/]+)(?=/)\b')
test_str = "less/RBR/...."

print(re.findall(p, test_str))

<强> Ideone Demo

答案 2 :(得分:1)

假设您希望斜杠之前的所有字符都包含斜杠。这意味着,例如对于输入字符串match/this but nothing here but another/one,您需要结果matchanother

使用正则表达式:

import re
result = re.findall(r"\b(\w*?)/\w*?\b", my_string)
print(result)

没有正则表达式:

result = [word.split("/")[0] for word in my_string.split()]
print(result)