什么是最好的"匹配具有许多逗号(,,,,,)的字符串中的URL的方法,并且可能具有404字符串后面的分隔符昏迷。在404字符串到来之后,获取字符串直到此部分。
示例:
http://stackoverflow.com/this,,,can,be,,a,slug,,,0,404
或
http://stackoverflow.com/this,,,can,be,,a,slug,,,0
我必须得到:http://stackoverflow.com/this,,,can,be,,a,slug,,,0
试过这些:
^(.*)(\,404)?
[^,404]*
答案 0 :(得分:2)
答案 1 :(得分:1)
这里的问题是,(.*)
将匹配所有内容,包括404,如果您将最后一个选中。你需要的是一个非贪婪的.*
,它将尽可能少地匹配(尽可能不多)。
试试这个:
^(.*?)(,404)?$
(我不认为,
也应该被转义)
当然,如果您不确定自己是否正在处理正确的网址,则应该使用适合您网址的某种模式替换(.*?)
,然后应用非贪婪({ {1}}或*?
)那里。