在Google上添加尾随斜杠.htaccess有很多结果,但我发现的所有示例都需要使用您的域名,如下例所示:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]
Run Code Online (Sandbox Code Playgroud)
我的问题是硬编码的域名不能在我的本地开发机器上运行.有没有办法在没有明确告诉mod_rewrite域名的情况下添加尾部斜杠?
regex .htaccess mod-rewrite regex-negation regex-lookarounds
我正在尝试使用REGEX来做一个if-then-elsif-then-else-then-end
示例:
s = "foobar123"
if end of s is 3
then return "foo"
elsif end of s is 2
then return "bar"
else
then return "foobar"
end
Run Code Online (Sandbox Code Playgroud)
我(?(?=condition)(then1|then2|then3)|(else1|else2|else3))从http://www.regular-expressions.info/conditional.html找到了,但在这种情况下不知道如何使它工作.这是我的正则表达式if-then-else-then-end:
/(?=.*[3])(foo)|(bar)/
Run Code Online (Sandbox Code Playgroud)
我认为可以写另一个if-else在其他父级,但不能:(
我有两个正则表达式,用于Regex.Split:
(?<=\G[^,],[^,],)
Run Code Online (Sandbox Code Playgroud)
和
(?<=\G([^,],){2})
Run Code Online (Sandbox Code Playgroud)
拆分字符串时"A,B,C,D,E,F,G,",第一个字符串会导致:
A,B,
C,D,
E,F,
G,
Run Code Online (Sandbox Code Playgroud)
第二个结果是:
A,B,
A,
C,D,
C,
E,F,
E,
G,
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?我认为这(X){2}总是相当于XX,但我不确定了.在我的实际问题中,我需要做一些比较复杂的事情,我需要做六十九次,所以重复模式不太理想.
命令
re.compile(ur"(?<=,| |^)(?:next to|near|beside|opp).+?(?=,|$)", re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)
抛出一个
sre_constants.error: look-behind requires fixed-width pattern
我的程序中出现错误,但是regex101显示它很好。
我在这里尝试做的是匹配地址中的地标(每个地址在单独的字符串中),例如:
后面是避免opp在其中匹配单词(如字符串3)。
为什么会引发该错误?除了我要找的东西以外,还有其他选择吗?
我试图解析以下字符串并返回最后一个方括号后的所有数字:
C9: Title of object (foo, bar) [ch1, CH12,c03,4]
Run Code Online (Sandbox Code Playgroud)
所以结果应该是:
1,12,03,4
Run Code Online (Sandbox Code Playgroud)
字符串和数字会改变.重要的是得到'['之后的数字,不管它前面有什么字符(如果有的话).(我在python中需要这个,所以也没有原子组!)我已经尝试了我能想到的一切,包括:
\[.*?(\d) = matches '1' only
\[.*(\d) = matches '4' only
\[*?(\d) = matches include '9' from the beginning
Run Code Online (Sandbox Code Playgroud)
等等
任何帮助是极大的赞赏!
编辑:我也需要这样做而不使用str.split().
我试图在一个术语的末尾匹配任何出现的加号,除非它恰好发生了两次.例如,在加号c+和c++++应匹配,而不是在c++.
\+{1}$|\+{3,}$显然,天真的方法不起作用.你有更好的主意吗?
我在这里看到了不同的答案,但不幸的是,这些答案都不适合我的情况.所以我希望你不介意.
所以我需要匹配两个大括号{}之间的所有内容,除了匹配以@开头且没有这些大括号的情况,例如:
这是我的测试字符串,1,2,3有效,而最后一个不应该是:
1 {eww}
2 r23r23{fetwe}
3 #{d2dded}
4 @{d2dded}
Run Code Online (Sandbox Code Playgroud)
我正在尝试:
(?<=[^@]\{)[^\}]*(?=\})
Run Code Online (Sandbox Code Playgroud)
然后只有第2和第3个选项匹配(没有第一个) https://regex101.com/r/qRInUf/2/
然后我在尝试:
\{(.*?)\} or [^@]\{(.*?)\}
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我都无法匹配1,2,3值 https://regex101.com/r/uYRtLD/1
在此先感谢您的任何建议.
编辑:这是为java.
我正在学习正则表达式,但无法在python中找到正确的正则表达式来选择以特定字母开头的字符。
下面的例子
text='this is a test'
match=re.findall('(?!t)\w*',text)
# match returns
['his', '', 'is', '', 'a', '', 'est', '']
match=re.findall('[^t]\w+',text)
# match
['his', ' is', ' a', ' test']
Run Code Online (Sandbox Code Playgroud)
预期: ['is','a']
在尝试提出一些解决此问题的示例时,我提出了以下代码段:
my regex key {^^ <![#-]> \d+ }
say "333" ~~ &key; # OUTPUT: «?333??»
say "#333" ~~ &key;
say '333$' ~~ m/ \d+ <?[$]>/; # OUTPUT: «?333??»
say '333' ~~ m/ \d+ <?[$]>/;
say '$333' ~~ m/<?[$]> \d+ /;
Run Code Online (Sandbox Code Playgroud)
只有表示为return的语句?333?似乎<! >可以用作先行断言,而<? >只能用作零宽度后向断言。是这样吗 如果是这样,创建正向超前断言和负向向后断言的方式是什么?
regex ×10
java ×2
python ×2
.htaccess ×1
.net ×1
javascript ×1
mod-rewrite ×1
perl6 ×1
python-2.7 ×1
python-3.x ×1
raku ×1
regex-greedy ×1
regex-group ×1