0
我需要一个正则表达式,它应该用空格解析字符串,并且如果在以引号(单/双)结尾的字符串中存在空格,则不应该解析它。需要Java正则表达式
abc cde 'efg hij'k lmn'opq rst' 'ijk lmn' u'v'w xyz 'abc' \'\\\\\' \'_Notes.txt\'
要求O/P:
abc
cde
'efg hij'k
lmn'opq rst'
'ijk lmn'
u'v'w
xyz
'abc'
\'\\\\\'
\'_Notes.txt\'
我用下面的方式对我的要求,但这种分析像下面
Pattern p = Pattern.compile("[^\\s\"']+|\"([^\"]*)\"|'([^']*)'");
O/P:
abc
cde
'efg hij' //here k is missing
lmn'opq
rst'
'ijk lmn'
u'v'w
xyz
'abc'
'\\' //here original string is \'\\\\\'
'_Notes.txt' //here origina string \'_Notes.txt\'
这除了特殊字符,然后斜线几乎工作尝试,O /你的模式P的(请查看最后两个单词 ABC CDE “EFG hij'k LMN 'OPQ RST' 'IJK LMN' u'v'w XYZ 'ABC' '\\' //这里我需要原词\ '\\\\\' '_Notes.txt' //这里我需要\'_ Notes.txt \' 非常感谢您的帮助! – Raj
为了更好地帮助您,我需要更多信息,因为现在我不确定我是否了解您的情况。你解析的文本来自哪里?它是来自像字符串文字一样的''ab \\ cd“'或者可能包含'ab \ cd'的文本文件之类的其他源文件(注意,文字表示与存储在文件中的文本相同的文本,因为''''是特殊的在字符串文字中,并且需要额外的转义)。如果我创建表示文本的字符串文字,如'String text =“abc cde'efg hij'k lmn'opq rst''ijk lmn'u'v'w xyz'abc'\\'\\\\\\\\\\\\\ \\'\\'_ Notes.txt \\'“;'我得到'\'\\\\'' – Pshemo
这是从后端获取的sql文本,无论发生了什么特殊字符,都需要使用斜杠进行填充以执行sql w/o错误 所以我解析SQL然后格式化文件中的文本。我的意图是从保存的文件执行SQL W/O修改 – Raj