Java 正则表达式忽略不以字母开头的标记
如何编写忽略任何不以字母开头的标记的正则表达式?它应该在java中使用 示例:Java 正则表达式忽略不以字母开头的标记,java,regex,string,token,Java,Regex,String,Token,如何编写忽略任何不以字母开头的标记的正则表达式?它应该在java中使用 示例:it's super-cool-->正则表达式应匹配:[it,super,cool]并忽略['s]您可以使用(?)这意味着字母前面没有标点符号。请注意,(?)用于指定。请查看的文档以了解更多信息 import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(
it's super-cool
-->正则表达式应匹配:[it,super,cool]
并忽略['s]
您可以使用(?)这意味着字母前面没有标点符号。请注意,(?)用于指定。请查看的文档以了解更多信息
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String str = "it 's super cool";
Pattern pattern = Pattern.compile("(?<!\\p{Punct})(\\p{L}+)");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
可选正则表达式:
it
super
cool
"(?:^|\\s)([A-Za-z]+)"
public static void main(String[] args) {
String input = "it 's super cool";
Matcher matcher = Pattern.compile("(?:^|\\s)([A-Za-z]+)").matcher(input);
while (matcher.find()) {
String result = matcher.group(1);
System.out.println(result);
}
}
it
super
cool
上下文中的正则表达式:
it
super
cool
"(?:^|\\s)([A-Za-z]+)"
public static void main(String[] args) {
String input = "it 's super cool";
Matcher matcher = Pattern.compile("(?:^|\\s)([A-Za-z]+)").matcher(input);
while (matcher.find()) {
String result = matcher.group(1);
System.out.println(result);
}
}
it
super
cool
输出:
it
super
cool
"(?:^|\\s)([A-Za-z]+)"
public static void main(String[] args) {
String input = "it 's super cool";
Matcher matcher = Pattern.compile("(?:^|\\s)([A-Za-z]+)").matcher(input);
while (matcher.find()) {
String result = matcher.group(1);
System.out.println(result);
}
}
it
super
cool
注意:要匹配任何语言(如印地语、德语、汉语、英语等)中的字母字符,请使用以下正则表达式:
"(?:^|\\s)(\\p{L}+)"
有关类、Pattern
以及Unicode脚本、块、类别和二进制属性的类的更多信息,可以找到。这个答案可能不完整,这取决于“token”的含义。什么将一个标记与另一个标记区分开来?只有由字母组成的标记才会被识别为一个。标记“多普勒效应”只会产生“多普勒”并完全消除“效果”。[A-Za-z]
仅适用于英文字母。为了覆盖所有类型的字母(例如印地语、德语、中文等),您应该使用\\p{L}
在Java中。感谢您提供的信息!我不知道,因为我从未尝试过英语字母表之外的正则表达式。我将添加这些信息。谢谢Arvind!