`
xixian
  • 浏览: 215267 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java正则表达式找出特定格式语句的关键字

    博客分类:
  • java
 
阅读更多
中文问句语句分析需要提取问句中的关键字
例子1
这个是什么牌子的?
这个是啥价格?

我们需要提取上面语句的"牌子"和"价格"这两个关键字
用正则实现
String reg="((?<=(什么|啥))[^的?\\?]+)";  
Pattern pattern =Pattern.compile(reg);
Matcher m=pattern.matcher("这个是什么牌子的?");
while(m.find()){
   System.out.println(m.group());//输出“牌子”
}
m=pattern.matcher("这个是啥价格?");
while(m.find()){
   System.out.println(m.group());//输出“价格”
}

按上面的实现
完全可以实现 什么|甚么|啥 ***的|啊|呢?这种语句的关键字提取
例子2
现在要提取多个关键字
这种产品是红色的还是蓝色的啊?
这种产品是水货还是正品呢?

我们要提取“红色”“蓝色”和 “水货”,“正品”这些关键字

String reg="((?<=(是))[^的还呢]+)";  
Pattern pattern =Pattern.compile(reg);
Matcher m=pattern.matcher("这种产品是红色的还是蓝色的啊?");
while(m.find()){
   System.out.println(m.group());//输出“红色”“蓝色”
}
m=pattern.matcher("这种产品是水货还是正品呢?");
while(m.find()){
   System.out.println(m.group());//输出“水货”“正品”
}





分享到:
评论

相关推荐

    用正则表达式提取SQL

    在本例中,其应用场景可能是分析日志、源代码,或者自动化数据处理等,目的是从大量文本中找出SQL查询语句。 描述中的博文链接虽然没有具体内容,但通常博客会详细解释如何构建和使用正则表达式来匹配SQL语句。在...

    正则表达式

    [JAVA] javascript 正则表达式 秋雨叶 发表于 2004-12-9 14:54:13 正则表达式是一个描述字符模式的对象。 JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的...

    java编写的编译词法分析程序

    在Java中,我们可以使用正则表达式进行模式匹配,找出这些元素。例如,`Pattern`和`Matcher`类可以用来创建和应用模式来检测源代码中的特定模式。此外,程序可能还包含一个词法单元的枚举类型,用于定义所有可能的...

    Java SE编程入门教程 java判断循环(共79页).ppt

    首先,我们从"javaSE回顾"部分开始,这部分强调了找出代码中的错误并理解输出结果的重要性。例如,一个计算体积的示例展示了类型不匹配的问题,需要将浮点数的结果转换为整数。此外,还演示了如何通过一个临时变量...

    详细的java基础总结

    Java提供了强大的调试工具,如Eclipse、IntelliJ IDEA等IDE内置的调试功能,可以帮助开发者找出并解决程序中的错误。 #### 第七章:常用类 - **基本数据类型的包装类** Java为每种基本类型都提供了对应的包装类...

    4747 Java语言程序设计(一)

    - 示例代码:使用正则表达式或其他方法删除前后空白符,并合并中间多余空白符。 **4.13 实现大整数的类** - 示例代码:定义一个类,使用数组存储大整数的每一位,并提供相应的算术运算方法。 #### 第五章 图形...

    支付宝Java工程师笔试题

    **解答:** 为了提高查询效率,可以使用反向连接(`LEFT JOIN`和`WHERE bb.X IS NULL`)来找出差异,如下所示: ```sql SELECT aa.X FROM aa LEFT JOIN bb ON aa.X = bb.X WHERE bb.X IS NULL; ``` 这种方式...

    Java工程师面试宝典

    - **正则表达式**:用于匹配字符串中的模式,如查找特定的文本模式。 - **String类方法**:掌握 `substring()`、`replace()`、`split()` 等方法。 #### 8. 数据库 ##### 8.1 SQL之连接查询 - **内连接**:返回两...

    面试宝典新版.docx

    - replaceAll()使用正则表达式作为参数,进行基于规则的替换。 8. String、StringBuilder与StringBuffer的区别 - String是不可变的字符序列,每次修改都会创建新的对象,性能较低。 - StringBuilder是可变的字符...

    SI4安装.rar

    4. **搜索功能**:内置的搜索功能支持全文搜索和正则表达式搜索,能快速找出代码中的特定模式或字符串。 5. **项目管理**:Source Insight 支持多项目管理,可以同时打开并切换不同的代码库,这对于处理多个项目或...

    2021-2022计算机二级等级考试试题及答案No.19339.docx

    RequiredFieldValidator(必填验证)、RangeValidator(范围验证)、CompareValidator(比较验证)、RegularExpressionValidator(正则表达式验证)和CustomValidator(自定义验证),它们分别用于确保用户输入符合...

    用Shell扩展实现源代码统计程序,用Shell扩展实现源代码统计程序

    为了统计源代码行,我们可以先设定一个搜索路径,例如当前目录`./`,然后使用`find`命令找出所有`.c`, `.cpp`, `.java`, `.py`等源代码文件。命令可能如下: ```bash files=$(find . -name "*.c" -o -name "*.cpp" ...

    2021-2022计算机二级等级考试试题及答案No.19012.docx

    15. 程序段分析:给定的程序段用于输入数据并找出最小值,如果输入的A值为负数或0,则MIN的值不会改变,因此结果可能是负数或0。 16. Word操作:文档保存按钮通常图标为软磁盘,用于保存当前文档内容。 17. 计算机...

    sqlParse:解析sql字符串以获取列名和参数

    在JavaScript中,解析SQL的一个常见方法是使用正则表达式,虽然简单但可能无法处理所有复杂的SQL结构。更高级的方法是使用解析器库,如Jison或ANTLR,它们可以根据自定义的语法规则生成解析器,能更准确地解析SQL...

    2021-2022计算机二级等级考试试题及答案No.187.docx

    - **RegularExpressionValidator**:用于验证输入是否符合某种正则表达式的格式。 2. **正确答案解析**:题目询问如何确保用户输入的值大于30。在提供的选项中,**RangeValidator**是最适合的验证控件,因为它可以...

    美团2016研发工程师笔试题及答案(二).pdf

    - `select productid from orders where count(productid)&gt;1`是SQL查询,用于找出订单表中产品ID出现次数超过一次的记录,涉及聚合函数`count()`和`group by`语句。 7. **排序与序列** - `89,78,57,25,41,45`可能...

Global site tag (gtag.js) - Google Analytics