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

标签 c# regex regex-group

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

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

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

最佳答案

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

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

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

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

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

关于c# - 匹配正则表达式中的可选斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47940125/

相关文章:

regex - Scala - 从字符串中去除除链接之外的所有 html 标签

c# - 解码 url 并存储为具有特殊字符的字符串

Python:从 JSON 读取正则表达式

c# - 如何在 WPF 图表中为 Y 轴混合指数/小数格式

javascript - JavaScript 中正则表达式的奇怪行为

javascript - 用于解析组的多个条件的正则表达式

c++ - 在 C++ 中,unmatched group 的位置是什么?

接受正则表达式组的前瞻部分

c# - 在asp .net C#中获取返回确认弹出框值

c# - 对 URL 的远程 WebDriver 服务器的 HTTP 请求 - Chrome