Tag: 正则表达式

Java Pattern Matcher:创建新的还是重置?

假设一个Regular Expression ,它通过Java Matcher对象与大量字符串匹配: String expression = …; // The Regular Expression Pattern pattern = Pattern.compile(expression); String[] ALL_INPUT = …; // The large number of strings to be matched Matcher matcher; // Declare but not initialize a Matcher for (String input:ALL_INPUT) { matcher = pattern.matcher(input); // Create a new Matcher if (matcher.matches()) // Or whatever […]

Java正则表达式错误 – 后瞻组没有明显的最大长度

我收到此错误: java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 22 ([az])(?!.*\1)(?<!\1.+)([az])(?!.*\2)(?<!\2.+)(.)(\3)(.)(\5) ^ 我想要匹配COFFEE ,但不是BOBBEE 。 我正在使用java 1.6。

使用分隔符将Java字符串拆分为两个字符串

我有一个字符串,其值为name:score 。 我想将字符串拆分为两个字符串,字符串a的值为name ,字符串b的值为score 。 执行此操作的正确函数/语法是什么? 我查看了string.split ,但找不到实际的语法将数据返回到两个单独的字符串中。

java正则表达式匹配文件路径

我正在尝试创建一个正则表达式来匹配java中的文件路径 C:\ ABC \ DEF \ GHI \的abc.txt 我试过这个([a-zA-Z]:)?(\\[a-zA-Z0-9_-]+)+\\? ,如下面的代码 import java.util.regex.Pattern; public class RETester { public static void main(String arhs[]){ String regularExpression = “([a-zA-Z]:)?(\\[a-zA-Z0-9_-]+)+\\?”; String path = “D:\\directoryname\\testing\\abc.txt”; Pattern pattern = Pattern.compile(regularExpression); boolean isMatched = Pattern.matches(regularExpression,path); System.out.println(path); System.out.println(pattern.pattern()); System.out.println(isMatched); } } 然而它总是给我,结果是假的。 请帮助我 。 谢谢

Java – 如何在加号上拆分字符串?

我试图在加号上分割算术表达式(例如“1 + 2 + 10 + 15”)。 但是,我没有设法编写适当的正则表达式。 我认为这会奏效: expression.split(“\\+”); 但事实并非如此。 你知道正确的解决方案吗?

大字符串在java中分割成具有最大长度的行

String input = “THESE TERMS AND CONDITIONS OF SERVICE (the Terms) ARE A LEGAL AND BINDING AGREEMENT BETWEEN YOU AND NATIONAL GEOGRAPHIC governing your use of this site, www.nationalgeographic.com, which includes but is not limited to products, software and services offered by way of the website such as the Video Player, Uploader, and other applications […]

Java中的RegEx:如何处理换行符

我目前正在尝试学习如何使用正则表达式,所以请忍受我的简单问题。 例如,假设我有一个输入文件,其中包含由换行符分隔的一堆链接: www.foo.com/Archives/monkeys.htm Monkey的网站描述。 www.foo.com/Archives/pigs.txt Pig的网站描述。 www.foo.com/Archives/kitty.txt Kitty网站的描述。 www.foo.com/Archives/apple.htm Apple网站的描述。 如果我想获得一个网站及其描述,这个正则表达式似乎适用于测试工具: .*www.*\\s.*Pig.* 但是,当我尝试在我的代码中运行它时似乎不起作用。 这个表达是否正确? 我尝试用“\ n”替换“\ s”,它似乎仍无法正常工作。

转义Java正则表达式中的特殊字符

在Java或任何开源库中是否有任何方法可以转义(不引用)特殊字符(元字符),以便将其用作正则表达式? 这在动态构建正则表达式时非常方便,无需手动转义每个单独的字符。 例如,考虑一个简单的正则表达式,如\d+\.\d+ ,匹配小数点为1.2 ,以及以下代码: String digit = “d”; String point = “.”; String regex1 = “\\d+\\.\\d+”; String regex2 = Pattern.quote(digit + “+” + point + digit + “+”); Pattern numbers1 = Pattern.compile(regex1); Pattern numbers2 = Pattern.compile(regex2); System.out.println(“Regex 1: ” + regex1); if (numbers1.matcher(“1.2”).matches()) { System.out.println(“\tMatch”); } else { System.out.println(“\tNo match”); } System.out.println(“Regex 2: ” […]

Java:如何从正则表达式中解析double

我有一个看起来像“A = 1.23; B = 2.345; C = 3.567”的字符串 我只对“C = 3.567”感兴趣 到目前为止我所拥有的是: Matcher m = Pattern.compile(“C=\\d+.\\d+”).matcher(“A=1.23;B=2.345;C=3.567”); while(m.find()){ double d = Double.parseDouble(m.group()); System.out.println(d); } 问题是它显示3与567分开 输出: 3.0 567.0 我想知道如何包含小数,所以它输出“3.567” 编辑:我还想匹配C如果它没有小数点:所以我想捕获3567以及3.567 因为C =也被内置到模式中,如何在解析双精度之前将其删除?

用于检索domain.tld的正则表达式

我需要一个Java中的正则表达式,我可以用来从任何url中检索domain.tld部分。 所以https://foo.com/bar,http://www.foo.com#bar,http://bar.foo.com都将返回foo.com。 我写了这个正则表达式,但它匹配整个url Pattern.compile(“[.]?.*[.x][az]{2,3}”); 我不确定我是否匹配“。” 性格正确。 我试过了 ”。” 但我从netbeans得到一个错误。 更新: tld不限于2或3个字符, http://www.foo.co.uk/bar应返回foo.co.uk.