搜索
首页Javajava教程使用正则表达式从较大的字符串中提取被单引号包围的字符串的Java程序

使用正则表达式从较大的字符串中提取被单引号包围的字符串的Java程序

Sep 16, 2023 pm 04:41 PM
正则表达式字符串单引号java程序提取

使用正则表达式从较大的字符串中提取被单引号包围的字符串的Java程序

正则表达式或正则表达式是用于模式匹配和字符串操作的语言。它由定义搜索模式的字符序列组成,可用于执行搜索、替换甚至验证文本输入等操作。正则表达式由一系列字符和符号组成,这些字符和符号构成了搜索模式。

在本文中,我们将了解如何编写一个 Java 程序,以使用正则表达式从较大的字符串中提取单引号括起来的字符串。

Java 通过 java.util.regex 包提供对正则表达式的支持。模式类表示已编译的正则表达式,而匹配器类可用于将模式与给定的输入字符串进行匹配。

用单引号括起来的单个子字符串

在下面的示例中,我们将首先定义输入字符串以及我们想要匹配的正则表达式模式。模式“(_+?)”匹配单引号和 _*? 部分括起来的任何字符序列。匹配任意字符 0 次或多次,但次数尽可能少,以便模式的其余部分能够匹配。

然后,我们根据模式创建一个 Matcher 对象,以借助 find 方法应用于输入字符串。如果模式匹配,我们使用参数为 1 的 group() 方法提取匹配的字符串,该方法代表模式中的第一个捕获组。此方法的缺点是它不能捕获所有单引号括起来的子字符串组。

示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringExtractor {
   public static void main(String[] args) {
      String input = "This is a 'single quote' enclosed string";
      Pattern pattern = Pattern.compile("'(.*?)'");
      Matcher matcher = pattern.matcher(input);
        
      if (matcher.find()) {
         String extractedString = matcher.group(1);
         System.out.println(extractedString);
      }
   }
}

输出

single quote

多个单引号括起来的子字符串

上述方法有一个主要缺点,即过于简单,无法从输入字符串中提取多个单引号括起来的子字符串,并且仅提取第一个出现的位置。这是先前方法的更新和高级版本,因为它能够提取多个事件。我们使用 while 循环来迭代并继续搜索匹配项,直到输入字符串中没有留下匹配项。匹配列表用于存储所有提取的字符串并由该方法返回。 main 方法演示了如何使用更新的 extractStringsWithRegex() 方法来提取所有单引号括起来的字符串。

示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.ArrayList;
import java.util.List;
public class StringExtractor {    
   public static List<String> extractStringsWithRegex(String input) {
      // This function takes string as input, iterates over to search for regex matches
      // and stores them in a List named matches which is finally returned in the end
      Pattern pattern = Pattern.compile("'(.*?)'");
      Matcher matcher = pattern.matcher(input);
      List<String> matches = new ArrayList<>();
      while (matcher.find()) {
         matches.add(matcher.group(1));
      }
      return matches;
   }   
   public static void main(String[] args) {
      String input = "This is a 'test' string with 'multiple' 'single quote' enclosed 'words'";
      List<String> matches = extractStringsWithRegex(input);
      for (String match : matches) {
         System.out.println(match);
      }
   }
}

输出

test
multiple
single quote
words

使用正则表达式从较大字符串中提取单引号括起来的字符串的 java 程序有一些优点和缺点,如下所示。

优点

  • 正则表达式非常强大,可以匹配单引号括起来的字符串,甚至可以匹配更复杂的模式。

  • Matcher 类为我们提供了处理匹配字符串的附加方法,例如查找匹配的开始和结束索引。

缺点

  • 与其他方法相比,编写和理解正则表达式可能更难理解。

  • 与其他方法相比,正则表达式可能会更慢,尤其是对于大型输入字符串或复杂模式。

结论

有多种方法可用于提取单引号括起来的字符串,但最常见的方法是使用正则表达式、split() 和 substring() 方法。正则表达式是强大且灵活的选项,因为它们可以处理复杂的模式,但在非常大的字符串中非常耗时。在使用正则表达式时,Pattern 类用于表示模式,Matcher 类用于将模式应用于输入字符串,然后提取匹配的文本。正则表达式有多种用例,从验证用户输入数据到操作文本。每当处理正则表达式时,仔细设计和测试模式以确保它与所需的文本匹配并很好地处理所有可能的边缘情况非常重要。

以上是使用正则表达式从较大的字符串中提取被单引号包围的字符串的Java程序的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:tutorialspoint。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。