相关疑难解决方法(0)

为什么正则表达式如此具有争议性?

在探索正则表达式(也称为RegEx-es)时,有许多人似乎将正则表达式视为圣杯.看起来如此复杂的东西 - 只是必须回答任何问题.他们倾向于认为使用正则表达式可以解决所有问题.

另一方面,也有许多人试图不惜一切代价避免使用正则表达式.他们试图找到解决正则表达式的方法并接受额外的编码只是为了它,即使正则表达式是一个更紧凑的解决方案.

为什么正则表达式被认为是如此有争议?是否存在关于它们如何工作的普遍误解?或者可能是一个普遍的信念,正则表达式通常很慢?

regex

209
推荐指数
13
解决办法
4万
查看次数

如何在Java中将CamelCase转换为人类可读的名称?

我想编写一个将CamelCase转换为人类可读名称的方法.

这是测试用例:

public void testSplitCamelCase() {
    assertEquals("lowercase", splitCamelCase("lowercase"));
    assertEquals("Class", splitCamelCase("Class"));
    assertEquals("My Class", splitCamelCase("MyClass"));
    assertEquals("HTML", splitCamelCase("HTML"));
    assertEquals("PDF Loader", splitCamelCase("PDFLoader"));
    assertEquals("A String", splitCamelCase("AString"));
    assertEquals("Simple XML Parser", splitCamelCase("SimpleXMLParser"));
    assertEquals("GL 11 Version", splitCamelCase("GL11Version"));
}
Run Code Online (Sandbox Code Playgroud)

java regex string camelcasing humanize

149
推荐指数
5
解决办法
6万
查看次数

"现代"正则表达的认识力

真正的现代正则表达式真正识别哪种语言?

每当存在具有反向引用的无限长度捕获组(例如(.*)_\1)时,正则表达式现在匹配非常规语言.但是,就其本身而言,这还不足以匹配诸如S ::= '(' S ')' | ?匹配对的parens的无上下文语言.

递归正则表达式(对我来说是新的,但我确信存在于Perl和PCRE中)似乎至少能识别出大多数CFL.

有没有人在这方面做过或读过任何研究?这些"现代"正则表达的限制是什么?对于LL或LR语法,他们是否严格认可或严格低于CFG?或者是否存在可以被正则表达式识别而不是CFG 而且相反的语言?

非常感谢与相关论文的链接.

regex theory perl language-theory context-free-grammar

82
推荐指数
1
解决办法
6969
查看次数

匹配数字与正则表达式 - 只有数字和逗号

我无法弄清楚如何为示例值构造一个正则表达式:

123,456,789
-12,34
1234
-8
Run Code Online (Sandbox Code Playgroud)

你可以帮帮我吗?

.net regex numbers matching

52
推荐指数
4
解决办法
6万
查看次数

通过正则表达式删除块注释

我试图让这个正则表达式工作有困难.我要做的就是删除块注释.这是我到目前为止,但我不能摆脱决赛*/.

$string = 'this is a test /*asdfa  */ ok then';

$pattern = '/\/\*([^\*\/]*)/i';

$replacement = '';

echo preg_replace($pattern, $replacement, $string);

//this is a test */ ok then
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

php regex

7
推荐指数
3
解决办法
2245
查看次数

正则表达式匹配12345

是否有正则表达式匹配一串不断增加的连续数字,例如123,56789等?我不认为它可以在正则表达式,但值得在这里与人们检查.

regex pattern-matching

5
推荐指数
2
解决办法
1610
查看次数

何时值得在Java中使用RegEx?

我正在写一个小应用程序,它读取一些输入并根据该输入做一些事情.

目前我正在寻找以"魔术"结尾的行,我会使用String的endsWith方法.对于那些正在阅读我的代码的人来说,这是很清楚的.

另一种方法是创建一个Pattern并尝试匹配以"magic"结尾的行.这也很清楚,但我个人认为这是一种矫枉过正,因为我正在寻找的模式并不复杂.

你认为什么时候使用RegEx Java值得?如果它的复杂性,你会如何个人定义什么是复杂的?

此外,是否有时候使用模式实际上比字符串操作更快?

编辑:我正在使用Java 6.

java regex

4
推荐指数
1
解决办法
559
查看次数

解析HTML文本时正则表达式与XPath

我想解析HTML文本并找到特殊部分.例如,在第3文本div1日row和2日columntable.我有两个解析选项:正则表达式和XPath.每个人的优点和缺点是什么?

谢谢

html regex xpath parsing html-parsing

4
推荐指数
2
解决办法
3059
查看次数