Tag: 正则表达式

dd-MMM-yyyy和dd-MMM的正则表达式?

我需要一个正则表达式来支持日期格式dd-MMM-yyyy和dd-MMM 。 例如: 04-Oct-2010 04-Oct 04-OCT-2010 04-OCT

Java,正则表达式捕获带有空格的字符串

这是我原来的名为’response’的字符串: String response = “attributes[{“displayName”:”Joe Smith”,”fact”:”super”},{“displayName”:”Kieron Kindle”,”fact”:”this is great”}]”; 我正在尝试解析String并提取所有id值,例如 String[0] = Joe Smith String[1] = Kieron Kindle Pattern idPattern = Pattern.compile(“\”displayName\”:(\\w)”); // regular expression Matcher matcher = idPattern.matcher(response); while(matcher.find()){ System.out.println(matcher.group(1)); } 当我尝试打印值时,没有任何内容打印到屏幕上(没有例外) 正则表达式查找”displayName”:”作为左括号, “作为右括号,然后提取它们之间的任何单词(\\w) ? 感谢任何帮助! 从我的正则表达式中删除了\n字符,这是一个格式错误,抱歉伙计们!

从字符串中提取日期

我有一个文件名列表大致如下:Gadget1-010912000000-020912235959.csv,即它们包含两个日期,表示其数据的时间跨度。 用户输入日期格式和文件格式: 在这种情况下的文件格式:* GADGET * – * DATE_FROM * – * DATE_TO * .csv 在这种情况下的日期格式:ddMMyyHHmmss 我想要做的是使用给定的文件和日期格式从文件名中提取三个值。 我的问题是:由于日期格式可能差别很大(小时,分钟和秒可以用冒号分隔,日期用点,…)我不太清楚如何创建一个合适的正则表达式。

用Java实现的最佳模式匹配算法

我是Java新手。 我的问题是我必须选择整个文件的行(大小小于70MB)来匹配我的模式(例如 )。 目前我使用基本的字符串匹配算法位需要时间,所以我想使用“Boyer-Moore算法”。 使用起来好吗? 我们还有其他更好的解决方案吗? 如果是,请告诉我,代码也是Java。

获取模式组

我有一个字符串 “This order was placed for QT3000! OK?” 我也有类似的模式 “(.*)(\\d+)(.*)” 我认为现在根据模式 group(0):“这个订单是为QT3000订的!好吗?” group(1):此订单是为QT而下的 第(2)组:3000 小组(3):! 好? 如果有什么问题,请纠正我 谢谢

通过使用Regex打开文件来解析字符串行

这是我打开的下面的文本文件(log.txt),需要使用正则表达式匹配每一行。 Jerty|gas|petrol|2.42 Tree|planet|cigar|19.00 Karie|entertainment|grocery|9.20 所以我写了这个正则表达式,但没有得到匹配。 public static String pattern = “(.*?)|(.*?)|(.*?)|(.*?)”; public static void main(String[] args) { File file = new File(“C:\\log.txt”); try { Pattern regex = Pattern.compile(pattern); Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); Matcher m = regex.matcher(line); if(m.matches()) { System.out.println(m.group(1)); } } } catch (FileNotFoundException e) { // […]

为什么Java正则表达式“匹配”与“查找”在使用非贪婪模式时获得不同的匹配?

所以我遇到了一个错误,因为期望match()方法找到与使用find()完全相同的匹配。 通常情况就是如此,但看起来如果非贪婪的模式可以被拉伸到贪婪地接受整个字符串,那么它是允许的。 这似乎是Java中的一个错误。 我错了吗? 我没有在文档中看到任何表明此行为的内容。 Pattern stringPattern = Pattern.compile(“‘.*?'”); String nonSingleString = “‘START’===stageType?’active’:””; Matcher m1 = stringPattern.matcher(nonSingleString); boolean matchesCompleteString = m1.matches(); System.out.println(“Matches complete string? ” + matchesCompleteString); System.out.println(“What was the match? ” + m1.group()); //group() gets the string that matched Matcher m2 = stringPattern.matcher(nonSingleString); boolean foundMatch = m2.find(); //this looks for the next match System.out.println(“Found […]

Java中的调试模式(正则表达式)失败(Android)

我在一段代码中进行模式匹配,在一种情况下可以正常工作但不能在另一种情况下工作。 该代码目前是: DLVRYrx = Pattern.compile(“(\\d+\\s\\p{Letter}+\\s\\d+)\\s(\\d+(?:\\.\\d+)?)\\s(\\d+)”); Log.d(TAG, “* Regex matched ” + DLVRYrx.matcher(“01 Jan 01 60.9876 1234″).groupCount() + ” groups”); // prints 3 as expected in logcat for (int i=19; i<(fields-6); i++) { final String DATAstr = values[i]; try { Matcher Dmatch = DLVRYrx.matcher(DATAstr); String data1 = Dmatch.group(0); } catch (IllegalStateException e) { Log.e(TAG, "! Text […]

获取n在Java中使用正则表达式的单词数

我有一本书的一部分,包括标点符号,换行符等等。我希望能够从文本中提取前n个单词,并将其分为5个部分。 正则表达式使我神秘。 这就是我想要的。 我创建了一个索引大小为0的数组,包含所有输入文本: public static String getNumberWords2(String s, int nWords){ String[] m = s.split(“([a-zA-Z_0-9]+\b.*?)”, (nWords / 5)); return “Part One: \n” + m[1] + “\n\n” + “Part Two: \n” + m[2] + “\n\n” + “Part Three: \n” + m[3] + “\n\n” + “Part Four: \n” + m[4] + “\n\n” + “Part Five: \n” + […]

构建这个正则表达式的问题

我有一个问题建立以下正则表达式:[1,2,3,4] 我找到了解决办法,但我觉得它很难看 String stringIds = “[1,2,3,4]”; stringIds = stringIds.replaceAll(“\\[“, “”); stringIds = stringIds.replaceAll(“\\]”, “”); String[] ids = stringIds.split(“\\,”); 有人可以帮助我建立一个正则表达式,我可以在拆分function中使用感谢您的帮助 编辑:我想从这个字符串“[1,2,3,4]”到一个有4个条目的数组。 条目是字符串中的4个数字,所以我需要消除“[”,“]”和“,”。 “,”不是问题。 第一个和最后一个数字包含[或]。 所以我需要使用replaceAll修复。 但我想如果我使用分裂正则表达式“,”,我也可以通过一个正则表达式,消除“[”“]”。 但我无法弄清楚,这个正则表达式应该是什么样子。