我正在用Java编写程序,使用正则表达式,并且遇到了错误。我想做的,基本上是编写一种编程语言,并逐行解析。我出错的地方,就是它试图找到任何字符串。问题是,我必须按照标识符,字符串,然后是整数的顺序,但我可以让标识符找到字符串。字符串是通过在它们周围加上双引号来定义的。这是我有测试的地方,我的表达式是here,或者在这里,如果你不想去链接:
[^"]([^\W][a-zA-Z0-9]+)[^"]
我无法显示我的Java代码,因为它是我所有的编程方式。它应该只是表达式,就是这样。
答案 0 :(得分:1)
如果您能够更详细地解释您想要匹配的内容,将会很有帮助。例如。给出一些示例文本以及您的表达式当前为它们输出的内容。
目前我认为您正在尝试匹配字符串"
所包围的文字。例如foofoo"text123"barbar
,您所需的输出为text123
。
如果在Java中定义正则表达式,则需要转义"
之类的特殊字符。这是您提供的正则表达式的Java可用版本:
Pattern pattern = Pattern.compile("[^\"]([^\\W][a-zA-Z0-9]+)[^\"]");
然后,您可以将Pattern
对象与Matcher
对象一起使用来查找文本。这是Pattern
的{{3}}。
以下Pattern
匹配"
包围的文字:
Pattern pattern = Pattern.compile("\"[^\"]*\"");