Java 选择子字符串的正则表达式

Java 选择子字符串的正则表达式,java,regex,Java,Regex,我有输入字符串 DISPLAY_MSG='Kumar + sajdhjhasd - Type' and ID=156090 and RESOURCE_KEY='Ascend.ElementMaster.kumar_type.desc' and LOCALE='en_US' 我只想匹配DISPLAY\u MSG='Kumar+sajdhjasd-Type',但使用以下表达式 DISPLAY_MSG='[

我有输入字符串

DISPLAY_MSG='Kumar + sajdhjhasd - Type' 
              and  ID=156090 
              and RESOURCE_KEY='Ascend.ElementMaster.kumar_type.desc' 
              and  LOCALE='en_US'
我只想匹配
DISPLAY\u MSG='Kumar+sajdhjasd-Type'
,但使用以下表达式

DISPLAY_MSG='[\\w\\W\\s\\S]*
匹配整个字符串。之后,如何仅在这两个单一代码之间选择字符串

DISPLAY_MSG=

您应该尝试使用非贪婪量词将匹配减少到可能的最小长度


下面是一个很好的例子

你应该使用ungreedy量词。试试这个:

DISPLAY_MSG='[\\w\\W\\s\\S]*?'

这个正则表达式很荒谬

[\w\w\s\s]
表示:匹配字母数字或非字母数字或空格或非空格的字符。通过
(?s)可以获得完全相同的结果。

只有在JavaScript中(允许点匹配换行符的
(?s)
选项不可用),编写
[\s\s]
才有意义。但是
[\w\w\s\s]
无疑是过火了

因此,使用惰性量词的更好解决方案是

DISPLAY_MSG='(?s).*?'
但更好的做法是实际指定引号之间允许的内容,而这通常不是引号:

DISPLAY_MSG='[^']*'

谢谢,您的解决方案正在运行…但是我对表达式做了一些修改,将DSIPLAY_MSG包含并替换为它的下一个和(这可能会发生一次或多次)DISPLAY_MSG='[\\w\\w\\s\\s]*?'[\\s]*和{0,1}。但是它不匹配。会是什么情况?