1

我正在寻找一种 PCRE 正则表达式匹配模式,我可以在 C 语言中使用它来提取字符串的尾部片段。我的预期效果是提取字符串“ en ”之后的字符串,该字符串后面可以紧跟任何内容,带或不带斜杠“ / ”。如果“ en ”后面的第一个字符是斜杠,则在返回捕获的字符串之前忽略或修剪掉它。输入字符是小写的纯 ASCII。

input-string        match   captured-string
---------------------------------------
english/japan       no
en                  yes
en/                 yes
en/japan            yes     japan
en//japan           yes     japan
en/japan/tokyo      yes     japan/tokyo
en//japan/tokyo     yes     japan/tokyo
en//                yes

先感谢您!

4

2 回答 2

1

^en(?:/+(.+)|/?)$

^    #beginning of line
  en    #'en' literal
   (?:    #beginning of a not capturing group
     /+(.+)    #'/' one or more times + 'any' character one or more times (capturing group)
     |    # OR
     /?    #'/' zero or one time    
   )    #closing not capturing group
$    #end of line
于 2013-10-21T15:55:37.893 回答
0
echo "en//japan/tokyo" | sed -rn 's;^en($|/+(.*));\2;p'
于 2013-10-21T13:17:31.887 回答