我想用正则表达式来分割一些文字。
我的文字: 您好:功放;世界 你好 0011安培;世界 0011
使用(.*)(\&.*)
仅匹配“Hello& World”和“0011& World”,(.*)(\&.*)?
忽略最后一部分。
对于前2个我想要'你好'而最后2个我想得到'0011'
谢谢
答案 0 :(得分:2)
似乎你需要获取除&之外的0+字符。在字符串的开头。
使用以下正则表达式:
^[^&]*
请参阅regex demo。
<强>详情:
^
- 字符串开头[^&]*
- negated character class匹配零个或多个(*
)个字符而不是&
(以匹配1个或多个*
替换{{1} }})。请参阅Python demo:
+
请注意,re.match
仅在字符串的开头查找匹配项,从而使模式中的import re
ss = ['Hello&World','Hello','0011&World','0011']
for s in ss:
print(re.match('[^&]*', s).group())
# print(re.search('^[^&]*', s).group())
成为冗余。
否则,如果您使用re.search
,则必须使用^
锚点将搜索锚定在字符串的开头。