我需要在文本中找到一些字符串后,在括号内的关键字第一次出现。下面是文本示例:
Lorem ipsum dolor sit amet,consectetur adipisising elit,sed do eiusmod tempor incidunt ut labore et dolore magna aliqua。===第一个关键字===veniam,{{文本需要得到}}ullamco laboris nisi ut aliquip ex ea commodo verciat.Duis aute irure dolor in repreenderit{{in voluptate velit esse cillum}}dolore eu fugiat nulla pariatur。Excepteur sint occaecat cupidatat non-proident,sunt in culpa qui officia{{deserunt mollit anim}}id est laborum
所以我需要在第一个关键字后得到括号内的文本。
我尝试了许多组合,但最好的是我从最后一个括号中接收文本,而不是首先。在这个执行中,我在关键字(?<====FIRST KEYWORD===).(.\n)*
之后得到了文本,但是在方括号中找到第一个文本时,我没有成功。
"(?<==== FIRST KEYWORD ===)[^{]*\\{\\{([^}]*)\\}\\}"
很管用,但我现在没看到。所以我不能对写这篇文章的人说谢谢,我不记得了。
以下代码提取目标:
String target = input.replaceAll("(?s).*?=== FIRST KEYWORD ===.*?\\{\\{(.*?)\\}\\}.*", "$1");
regex的重要部分是使用不情愿的量词.*?
,这将在第一个可用匹配时停止使用输入(不会跳过它到后续匹配中)。
注意(感谢@guido指出了这一点)已经添加了dotall标志(?s)
,这允许点匹配跨行运行--在处理多行输入时是必需的。
String input = "one two === FIRST KEYWORD === three {{xxx}} four {{yyy}} five";
String target = input.replaceAll("(?s).*?=== FIRST KEYWORD ===.*?\\{\\{(.*?)\\}\\}.*", "$1");
System.out.println(target);
xxx
问题内容: 我正在一个简单的测试应用程序中尝试log4j。我在eclipse中创建一个新的Java项目,并将log4j JAR(v1.2.16)添加到我的构建路径中。然后,我创建一个简单的类来打印Hello World。然后,我使用log4j 类记录一条信息消息。当我运行该应用程序时,使用默认的附加程序和布局,我会看到日志消息。大。我遇到的麻烦是添加了自己的配置。这是我所做的: 使用自定义的附加程
; StrStr ; 输入,堆栈顶 = 要查找的字串 ; 堆栈顶-1 = 在该字串中查找 ; 输出,堆栈顶 (替换为字串剩余部分) ; 不改变其它变量值。 ; ; 用法: ; Push "this is a long ass string" ; Push "ass" ; Call StrStr ; Pop $R0 ; ($
问题内容: 这可能不清楚,也可能不清楚,如果我不在基地或您需要更多信息,请给我评论。也许对于我想要的PHP已经有了解决方案。 我正在寻找一个函数,该函数将从经度或纬度值中增加或减去一个距离。 原因:我有一个包含所有纬度和经度的数据库,并且想要形成一个查询以提取X公里(或英里)内的所有城市。我的查询看起来像这样… 我正在使用MySql数据库使用PHP。 也欢迎任何建议!:) 问题答案: 这是一个My
我对intellij和Spock很陌生。 我正在使用Gradle将spock测试添加到我的spring boot项目中。以下是我的: 构建直接运行良好。
问题内容: 如何使用Selenium检查当前页面上是否存在给定的文本字符串? 问题答案: 代码是这样的:
我正在寻找一个优雅的解决方案,来查找我存储在python字典/列表中的某个单词出现在文档的哪个页面。 我首先考虑的是。docx格式作为输入,并查看了PythonDocx,它有一个搜索功能,但在docx/xml格式中显然没有真正的页面属性。如果我分析文档,我可以查找