Tag: regex

Hibernatevalidation器在正则表达式匹配上吃CPU

我们正在尝试使用hibernatevalidation器validation地址。 有时hibernatevalidation器会挂起java正则表达式匹配。 它完成了CPU占用率,无法处理任何其他内容。 有没有办法摆脱这个? 这是java 6中的错误吗? java.lang.Thread.State: RUNNABLE at java.lang.Character.codePointAt(Character.java:2335) at java.util.regex.Pattern$CharProperty.match(Pattern.java:3344) at java.util.regex.Pattern$Curly.match(Pattern.java:3737) at java.util.regex.Pattern$Ques.match(Pattern.java:3691) at java.util.regex.Pattern$Curly.match0(Pattern.java:3789) at java.util.regex.Pattern$Curly.match(Pattern.java:3744) at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168) at java.util.regex.Pattern$Loop.match(Pattern.java:4295) at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227) at java.util.regex.Pattern$Curly.match0(Pattern.java:3789) at java.util.regex.Pattern$Curly.match(Pattern.java:3744) at java.util.regex.Pattern$Ques.match(Pattern.java:3691) at java.util.regex.Pattern$Curly.match0(Pattern.java:3782) at java.util.regex.Pattern$Curly.match(Pattern.java:3744) at java.util.regex.Pattern$Ques.match(Pattern.java:3691) at java.util.regex.Pattern$Curly.match0(Pattern.java:3789) at java.util.regex.Pattern$Curly.match(Pattern.java:3744) at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168) at java.util.regex.Pattern$Loop.match(Pattern.java:4295) at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227) at java.util.regex.Pattern$Curly.match0(Pattern.java:3789) at java.util.regex.Pattern$Curly.match(Pattern.java:3744) at java.util.regex.Pattern$Ques.match(Pattern.java:3691) at […]

console.readLine()和console.format():格式说明符引用的参数是什么意思?

这个问题在这里有一个后续问题。 按照本教程并编译给定的RegexTestHarness,分别在console.readLine(String)和console.Format(String)上给出以下错误: 参数类型Console中的方法readLine()不适用于参数(String) 参数类型Console中的方法格式(String,Object [])不适用于参数(String,String,int,int) 根据文档 ,有两个论点: public String readLine(String fmt, Object… args ) public Console format(String fmt, Object… args ) 这两种方法的Object类型的第二个参数是: args – 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受定义的Java数组的最大维数限制。 所以我相信在教程发布后它发生了变化。 题:- 什么是格式说明符引用的参数? 首先我认为它是格式说明符本身,但后来我也在Matcher matcher = pattern.matcher(console.readLine(“Enter input string to search: “));上收到错误Matcher matcher = pattern.matcher(console.readLine(“Enter input string to search: “)); 声明。 import java.io.Console; import java.util.regex.Pattern; import java.util.regex.Matcher; […]

从字符串中提取阿拉伯语单词(不是语义阿拉伯语短语)

String description=”Big data is a broad term for data sets so large or complex that traditional data processing applications are inadequate. البيانات الضخمة هي عبارة عن مجموعة من مجموعة البيانات الضخمة جداً والمعقدة لدرجة أنه يُصبح من الصعب معالجتها باستخدام أداة واحدة فقط من أدوات إدارة قواعد البيانات أو باستخدام تطبيقات معالجة البيانات التقليدية. ” […]

java.util.regex.Matcher困惑组

我无法获得正确的正则表达式匹配组。 我的代码归结为以下内容: Pattern fileNamePattern = Pattern.compile(“\\w+_\\w+_\\w+_(\\w+)_(\\d*_\\d*)\\.xml”); Matcher fileNameMatcher = fileNamePattern.matcher(“test_test_test_test_20110101_0000.xml”); System.out.println(fileNameMatcher.groupCount()); if (fileNameMatcher.matches()) { for (int i = 0; i < fileNameMatcher.groupCount(); ++i) { System.out.println(fileNameMatcher.group(i)); } } 我希望输出为: 2 test 20110101_0000 它然而: 2 test_test_test_test_20110101_0000.xml test 有没有人有解释?

Java Scientific Calculator正则表达式

java中的正则表达式将是什么样的表达式(3 + 2)+ 23 / 12-(43/54),其中左括号是创建的,而不是用户将能够放右,如果左括号不是创建的用户将无法放置右括号。如果左括号创建3次,则用户只能将右括号3次,以关闭左括号打开的表达式。 谢谢

正则表达式不适用于java 1.5

public static final String PATTERN = “(?<=(^|,))(([^\",]+)|\"([^\"]*)\")(?=($|,))"; public static void main(String[] args) { String line = ",1234,ABC"; Matcher matcher = Pattern.compile(PATTERN).matcher(line); while (matcher.find()) { if (matcher.group(3) != null) { System.out.println(matcher.group(3)); } else { System.out.println(matcher.group(4)); } } } 我使用上面的程序来解析字符串”,1234,ABC” 。 解析后我应该获得3个令牌,如下所示: 空字符串即“” 1234 ABC 它似乎适用于Java 1.6,但它不适用于Java 1.5。 从Java 1.4开始,正则表达式在java中,为什么我面临这样的问题呢?

在值列表中使用正则表达式获取括号内容

我正在尝试寻找一个正则表达式(Coldfusion或Java),它可以让我获得每个(param \ d +)的括号之间的内容。 我已经尝试了几十种不同类型的正则表达式,而我得到的最接近的就是这一种: \(param \d+\) = \[(type='[^’]*’, class='[^’]*’, value='(?:[^’]|”)*’, sqltype='[^’]*’)\] 如果从CF返回的字符串从value参数中转出单引号,那么这将是完美的。 但事实并非如此,它失败了。 像这样走负面前瞻的路线: \[(type='[^’]*’, class='[^’]*’, value='(?:(?!’, sqltype).)*’, sqltype='[^’]*’)\] 很棒,除非出于一些无法解释的原因,有一段代码完全具有, sqltype的值。 我发现很难相信我不能简单地告诉正则表达式挖出它找到的每个开放和闭合括号的内容但是再一次,我不知道足够的正则表达式知道它的极限。 这是我正在尝试解析的示例字符串: (param 1) = [type=’IN’, class=’java.lang.Integer’, value=’47’, sqltype=’cf_sql_integer’] , (param 2) = [type=’IN’, class=’java.lang.String’, value=’asf , O’Reilly, really?’, sqltype=’cf_sql_varchar’] , (param 3) = [type=’IN’, class=’java.lang.String’, value=’Th[is]is Ev’ery’thing That , []can break it […]

使用Tuckey URL Rewrite时获取查询字符串

我有以下规则: ^/users/(.*)$ /users.do$1 我想匹配以下url: http://localhost:8077/users/?elemsPerPage=10 并将其重定向到: http://localhost:8077/users.do?elemsPerPage=10 问题是当url rewriter引擎找到“?”时 url中的字符在$ 1匹配参数中不返回任何其他内容。 它既不会将参数添加到查询字符串中。 有任何想法吗?

防止getText()评估EL表达式

在Struts2后端,我有一个动作类实例变量,例如: keyName 。 返回到视图的动态密钥(JSP)。 使用POST方法使用请求参数设置此keyName变量。 根据请求参数值, keyName会有所不同。 在JSP中,我使用来显示与keyName变量给出的键对应的标签。 当我向keyName发送例如${90-40}的EL表达式时,正在评估此表达式并导致在UI上显示50。 我们如何使用getText()避免或阻止这种EL注入? 有没有其他替代方法而不是 ?

在插入derbyDB varchar字段之前,搜索“特殊”字符的java字符串

我试图从MS Access转换为DerbyDB。 但是,某些varchar字段具有“特殊”字符,例如换行符,制表符,百分号,外来字符等。 我创建了一个快速方法…… public String charCheck(String s) { errLog.add(1, “converting string from ” + s); s.replaceAll(“‘”, “””);//an apostrophe is escaped with an apostrophy in Derby… s.replaceAll(“%”, “\\%”);//a percent sign s.replaceAll(“\\s+n”, ” “);//whitespace characters (newlines and tabs etc) s.replaceAll(“/”, “\\/”);//the ‘divide’ \ character, s.replaceAll(“<", "\\”, “\\>”);//mathematical symbol greater than errLog.add(1, “to ” + s); return […]