5

如何使用^$符号仅/blog/articles在以下内容中进行解析?

我创建了 ex3.txt,其中包含:

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

和正则表达式:

^/blog/articles$

似乎不起作用,就像我使用“regetron”键入它时一样(请参阅 learning regex the hard way),下一行没有输出。

这是我的确切程序:

  1. 在正确目录的命令行中,我键入:regetron ex3.txt。ex3.txt 包含一行,内容如下:

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

尽管我已经尝试在条目之间使用换行符。

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

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

在此先感谢 SOers!

4

2 回答 2

5

将您的正则表达式更改为:

^\/blog\/articles$

你需要逃避你的斜线。

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

于 2013-07-15T16:25:34.010 回答
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

于 2013-07-15T16:56:48.327 回答