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}。但是它不匹配。会是什么情况?