Java正则表达式
我试图用Java中的正则表达式解析出以下内容 我的测试字符串由Java正则表达式,java,regex,Java,Regex,我试图用Java中的正则表达式解析出以下内容 我的测试字符串由“${}”中的字符串组成,例如${xyz}:${abc}”中的ex:“Test${template}”中的字符串 我试图使用(\$\{[^\}]+\})形式的正则表达式来匹配它。当前正则表达式与测试字符串中的任何内容都不匹配 如果我添加(.*?)(\$\{[^\}]+\})(.*?以使其不灵活,那么在提供我想要匹配的任何内容时,它实际上是不一致的 我的正则表达式有什么问题?如何修复它?您可能还需要避开大括号: jcomeau@intr
“${}”
中的字符串组成,例如${xyz}:${abc}”中的ex:“Test${template}”中的字符串
我试图使用(\$\{[^\}]+\})
形式的正则表达式来匹配它。当前正则表达式与测试字符串中的任何内容都不匹配
如果我添加(.*?)(\$\{[^\}]+\})(.*?
以使其不灵活,那么在提供我想要匹配的任何内容时,它实际上是不一致的
我的正则表达式有什么问题?如何修复它?您可能还需要避开大括号:
jcomeau@intrepid:/usr/src/clusterFix$ python
Python 2.6.7 (r267:88850, Jun 13 2011, 22:03:32)
[GCC 4.6.1 20110608 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> s = 'Test ${template} in ${xyz} : ${abc}'
>>> re.compile('\$\{[^}]+\}').findall(s)
['${template}', '${xyz}', '${abc}']
您可能还必须避开大括号:
jcomeau@intrepid:/usr/src/clusterFix$ python
Python 2.6.7 (r267:88850, Jun 13 2011, 22:03:32)
[GCC 4.6.1 20110608 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> s = 'Test ${template} in ${xyz} : ${abc}'
>>> re.compile('\$\{[^}]+\}').findall(s)
['${template}', '${xyz}', '${abc}']
大多数时候,当有人问正则表达式问题时,我要求他们至少考虑一下:
大多数时候,当有人问正则表达式问题时,我要求他们至少考虑一下: 产出:
${template}
${xyz}
${abc}
产出:
${template}
${xyz}
${abc}
一刀还不够。你需要两条斜线 试试这个正则表达式:
\\$\\{.+\\}
它检查文本周围有${和}的字符串。这将过滤掉空白字符串(${}
)和任何未正确关闭的内容
如果要检查前后文本,请尝试
+\\$\\{.+\}.+
一个斜杠是不够的。你需要两条斜线
试试这个正则表达式:
\\$\\{.+\\}
它检查文本周围有${和}的字符串。这将过滤掉空白字符串(${}
)和任何未正确关闭的内容
如果您想检查前后文本,请尝试
+\$\\{.+\}.+
我确实跳过了$和花括号。例如“(.*?)(\$\{[^\}]+\})(.*?”)您可以显示准备运行的示例代码吗?@Sachin:“花括号”对我来说是新的:)您的正则表达式在JavaScript中工作得很好,因此,这可能是一个转义问题。我确实转义了$和花括号。像这样“(.*?(\$\{[^\}]+\})(.*?”)您可以显示准备运行的示例代码吗?@Sachin:“花括号”对我来说是新的:)您的正则表达式在JavaScript中运行良好,因此这可能是一个转义问题
\\$\\{.+\\}