我遇到了正则表达式问题。
在Google Analytics(分析)中,我想添加一个过滤器来重写URL的某些部分,并仅保留URL的最后一部分。
我的问题是,在这些URL中,我有一个字符-
这是一个示例:
/on/wordsearched.store/sites-eu-site/section_1/default
在这里,我应该保留default
如您所见,URL包含破折号-
因此,当我使用以下正则表达式时:
[^/on/wordsearched.store/sites\-eu\-site/section_1](.*)
它应该给我字符串default
相反,它给了我fault
它会切断单词的前两个字符。有人知道原因吗?
我尝试了许多解决方案,这些解决方案并非完全符合我的期望:
[^/]+$
:这将使用所有URL,但我只希望以上述前缀开头的URL。
任何帮助将不胜感激
答案 0 :(得分:0)
将对wordsearched
进行非捕获匹配,并获取最后的/
值
(?:wordsearched.*)\/(?<last>.*$)
答案 1 :(得分:0)
原因是因为您在方括号内使用了以^
开头的否定字符类,所以与列出的字符类不匹配。
该字符类中的第一个匹配项是f
。匹配之后,您将在给定ault
的捕获组中捕获除换行符以外的所有字符。所以整个比赛是fault
我认为您的意思是匹配第一个捕获组中的默认值,其中^
现在表示并锚定以断言字符串的开头。
^\/on/wordsearched\.store\/sites-eu-site\/section_1\/(.*)
答案 2 :(得分:0)
这与最后一个正斜杠之后的所有单词字符**
(?<=\/)[\w]*$
**任何字母,数字或下划线,等效于[a-zA-Z0-9_]
如果google-analytics允许您使用python代码,则可以按如下方式简单地使用.split():
S = '/on/wordsearched.store/sites-eu-site/section_1/default'
S.split('/')[-1] ## Output: 'default'