如何使用^和$来解析简单表达式?

时间:2013-07-15 16:22:14

标签: python regex

如何使用^$符号仅解析以下/blog/articles

我创建了包含此内容的ex3.txt:

/blog/article/1 
/blog/articles 
/blog 
/admin/blog/articles

和正则表达式:

^/blog/articles$

似乎不起作用,就像我使用'regetron'(see learning regex the hard way)输入它时,下一行没有输出。

这是我的确切程序:

  1. 在正确目录的命令行中,输入:regetron ex3.txt。 ex3.txt包含以下一行:

    / blog / article / 1 / blog / articles / blog / admin / blog / articles

  2. 虽然我已尝试在条目之间添加换行符。

    1. 我输入^/blog/article/[0-9]$,下一行没有返回任何内容。

    2. 我尝试发布第一个解决方案^\/blog\/articles$,但未返回任何内容。

    3. 先谢谢SOers!

2 个答案:

答案 0 :(得分:5)

将正则表达式更改为:

^\/blog\/articles$

你需要逃避斜线。

另外,请确保ex3.txt文件中每行末尾没有尾随空格。

答案 1 :(得分:1)

根据您的更新,听起来^$可能不适合您。它们分别匹配一行的开头和结尾。如果你想在同一行上匹配多个字符串,那么你需要更像这样的东西:

(?:^|\s)(\/blog\/articles)(?:$|\s)

这是做什么的:

(?:^|\s)            Matches, but does not capture (?:), a line start (^) OR (|) a whitespace (\s)
(\/blog\/articles)  Matches and captures /blog/articles.
(?:$|\s)            Matches, but does not capture (?:), a line end ($) OR (|) a whitespace (\s)

这适用于两种情况,但要注意它将匹配(但不会捕获)/blog/articles之前和之后的单个空格。