如何通过正则表达式从句子中提取一些信息?我想从短语中提取数字和名称。
例如,
buy a $30 giftcard for John
buy John a $30 giftcard
我希望输出是“ 30”和“约翰”
答案 0 :(得分:0)
此表达式
\$(\d+)|(\b[A-Z]\S+\b)
例如,提取那些输出。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
final String regex = "\\$(\\d+)|(\\b[A-Z]\\S+\\b)";
final String string = "buy a $30 giftcard for John\n"
+ "buy John a $30 giftcard";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
如果要浏览/简化/修改该表达式,请在this demo的右上角进行解释。
jex.im可视化正则表达式:
答案 1 :(得分:0)
这是一种方法。它还允许使用 const updateCart = () => {
itemToSend.forEach(element => {
addToCart(element);
});
};
数组中的其他模式进行扩展。只要您的模式是唯一的,就可以在多个项目上进行匹配,而不必指定模式的所有排列。
Pattern