如何使用^
和$
符号仅解析以下/blog/articles
?
我创建了包含此内容的ex3.txt:
/blog/article/1
/blog/articles
/blog
/admin/blog/articles
和正则表达式:
^/blog/articles$
似乎不起作用,就像我使用'regetron'(see learning regex the hard way)输入它时,下一行没有输出。
这是我的确切程序:
在正确目录的命令行中,输入:regetron ex3.txt。 ex3.txt包含以下一行:
/ blog / article / 1 / blog / articles / blog / admin / blog / articles
虽然我已尝试在条目之间添加换行符。
我输入^/blog/article/[0-9]$
,下一行没有返回任何内容。
我尝试发布第一个解决方案^\/blog\/articles$
,但未返回任何内容。
先谢谢SOers!
答案 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
之前和之后的单个空格。