/猪/拉丁/
这是它的上下文: http ://www.mysite.com/pig/latin/
我有一个包含 /pig/latin/ 的值,或者它可能是 /pig/latin/is/great
我只需要猪的部分。这是怎么做到的?你能解释一下这个模式吗
/猪/拉丁/
这是它的上下文: http ://www.mysite.com/pig/latin/
我有一个包含 /pig/latin/ 的值,或者它可能是 /pig/latin/is/great
我只需要猪的部分。这是怎么做到的?你能解释一下这个模式吗
这应该与斜杠之间的第一个文本实例相匹配,假设问题没有问题:
(?<=\/)[^\/]+(?=\/)
您的正则表达式解析器应该在您的字符串中从左到右移动,并且假设没有标志可以匹配所提供模式的所有实例,则仅匹配第一个实例。前瞻(?<=...)
和后瞻(?=...)
符号将匹配提供的字符,但不会在匹配的组中返回它们。的字符类匹配将匹配除 之外[^\/]+
的任何字符的一个或多个实例。 /
假设只有小写字母,这将提供第一部分。
^/([a-z]+)/.*
根据您的编程语言,可能还需要某种分隔符来表示表达式的开始和结束。
如果您需要除小写字母之外的字符,请将它们添加到字符类中,例如:^/([a-zA-Z0-9]+)/.*
也允许大写字母和数字。
假设您匹配以匹配以 / 开头的字符串的第一部分,并将内容拉到下一个 / 那么这应该有效
^/([^/]++)/.*+$
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
您可能需要转义其他语言的正斜杠。