字符串中模式的正则表达式是什么:
window.history.pushState({}, null, '/new_path');
window.dispatchEvent(new CustomEvent('location-changed'));
因此,正则表达式需要识别四个字段:描述,优先级,名称和日期。
我成功地将第一个字符串与:
匹配description details #lo firstname lastname 29 March 2017
但是,我无法弄清楚如何匹配其他领域。
感谢。
答案 0 :(得分:1)
好像你可以使用
^(?P<description>[^#]+?)\s+#(?P<priority>\w+)\s+(?P<name>.*?)\s+(?P<date>\d.*)$
请参阅regex demo
<强>详情
^
- 字符串的开头(与re.match
/ re.fullmatch
一起使用时隐含)(?P<description>[^#]+?)
- 组“描述”:尽可能少的#
以外的一个或多个字符\s+
- 1+空格#
- #
字符(?P<priority>\w+)
- 匹配1 +字词组的“优先级”\s+
- 1+空格(?P<name>.*?)
- 除了换行符之外的任何0 +字符,尽可能少\s+
- 1+空格(?P<date>\d.*)
- 组“日期”:数字和行的其余部分$
- 字符串结尾(隐含在re.fullmatch
)注意:{3.}}在Python 3.x中可用。
re.fullmatch
输出:
import re
rx = r"(?P<description>[^#]+?)\s+#(?P<priority>\w+)\s+(?P<name>.*?)\s+(?P<date>\d.*)$"
ss = ["description details #lo firstname lastname 2017-03-29", "description details #lo firstname lastname 2017 June 29"]
for s in ss:
m = re.match(rx, s)
if m:
print(m.groupdict())