Skip to main content
 首页 » 编程设计

c#之匹配正则表达式中的可选斜杠

2024年02月04日28daizhj

我需要一个正则表达式来匹配 url 中三个“/”字符之间的前两个词:例如。在/en/help/test/abc/def 中它应该匹配/en/help/。

我使用此正则表达式:/.*?/(.*?)/ 但是有时我的 url 没有最后一个斜杠,例如/en/help,由于缺少最后一个,因此不匹配削减。

你能帮我调整正则表达式以只匹配“/en/help”部分吗?谢谢

请您参考如下方法:

解决它的一个简单方法是用贪婪的([^/]*)替换不情愿的(.*?)/:

/.*?/([^/]*) 

如果有第三个斜杠,这将在第三个斜杠处停止,如果没有最后一个斜杠,则在字符串末尾停止。

请注意,为了保持一致性,您可以将 .*? 替换为相同的 [^/]* 表达式:

/[^/]*/([^/]*)