/猪/拉丁/
下面是它的背景: http://www.mysite.com/pig/latin/
我有一个包含/ pig / latin /的值,或者它可能是/ pig / latin / is / great
我只需要猪的部分。这是怎么做到的? 你能解释一下这个模式吗
答案 0 :(得分:1)
这应该匹配斜杠之间的第一个文本实例,假设没有问题的捕获:
(?<=\/)[^\/]+(?=\/)
你的正则表达式解析器应该在你的字符串中从左向右移动,并假设没有标志匹配所提供模式的所有实例,只匹配第一个实例。前瞻(?<=...)
和后瞻(?=...)
表示法将与提供的字符匹配,但不会在匹配的组中返回它们。 [^\/]+
的字符类匹配将匹配除 /
之外的任何字符的一个或多个实例。
答案 1 :(得分:1)
假设只有小写字母,这将提供第一部分。
^/([a-z]+)/.*
根据您的编程语言,可能还需要某种分隔符来表示表达式的开头和结尾。
如果您需要除小写字母之外的字符,请将它们添加到字符类中,例如:^/([a-zA-Z0-9]+)/.*
也将允许使用大写字母和数字。
答案 2 :(得分:1)
假设你匹配以匹配以/开头的字符串的第一部分,然后将内容拉到下一个/那么这应该起作用
^/([^/]++)/.*+$
java中的概念证明
public static void main(String[] args) {
final String s = "/pig/latin/";
final Pattern p = Pattern.compile("^/([^/]++)/.*+$");
final Matcher m = p.matcher(s);
m.find();
System.out.println(m.group(1));
}
输出
pig
您可能需要以其他语言转义正斜杠。