java - 如果第一个匹配,如何匹配两个连续的单词

标签 java regex regex-greedy

如何匹配两个构成词

输入字符串

fgf     USE  [MarketWorkFlowDb] dfhdjfh
GO use


IF  EXISTS (SELECT * 
              FROM sys.objects 
             WHERE object_id = OBJECT_ID(N'[dbo].[DeleteLkpDataSp]') 
               AND type in (N'P', N'PC'))
    DROP PROCEDURE   [dbo].[DeleteLkpDataSp]
GO

我想在使用后立即匹配单词。 所以这里的输出应该是 USE [MarketWorkFlowDb] 但它匹配

 USE 

    IF

还有。

我使用 \s*\bUse\b\s+[a-zA-Z0-9_\[\]]+ 来匹配它。

最佳答案

\s 也匹配换行符。

您可以使用:

\bUse\b[ \t]+[a-zA-Z0-9_\[\]]+

[\t]+ 将仅匹配 1 个或多个空格或制表符。

RegEx Demo

关于java - 如果第一个匹配,如何匹配两个连续的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36838165/

相关文章:

java - LibGDX应用程序崩溃: "batch cannot be null"

java - 当任何匹配值时返回匹配枚举

Java -\pL [\x00-\x7F]+ 正则表达式无法使用 String.match 获取非英文字符

regex - 正则表达式考虑字符串中的特殊字符

正则表达式可选所有内容以空格或逗号分隔(城市、州)

java - 应用不显示?

regex - 可以使用 Perl 的 grep 和正则表达式返回捕获

python - 使用正则表达式查找模式

python - 正则表达式搜索环视

java - org.xml.sax.SAXParseException : cvc-elt. 1:找不到元素 'tns:root_element' 的声明