草庐IT

ReplaceAll

全部标签

java - String.replaceAll() 抛出 IndexOutOfBoundsException

当我用包含$1的替换文本调用replaceAll()时,我得到java.lang.IndexOutOfBoundsException:这是一段比较复杂的代码,不过我简化了如下:http://ideone.com/QCof3classTest{publicstaticvoidmain(Stringargs[]){Stringtest="@Key";Stringreplacement="$1";test=test.replaceAll("@Key",replacement);System.out.println(test);}}Exceptioninthread"main"java.lan

java - String.replaceAll 奇怪的行为

Strings="hihello";s=s.replaceAll("\\s*","");System.out.println(s);我有上面的代码,但我不知道为什么会产生hihello而不是hihello非常感谢 最佳答案 使用+量词来匹配1个或多个空格而不是*:-s=s.replaceAll("\\s+","");\\s*表示匹配0个或多个空格,会匹配每个字符前的一个空字符,并被空格替换。 关于java-String.replaceAll奇怪的行为,我们在StackOverflow上找

java - 具有正则表达式支持的 StringBuilder 的 replaceAll?

我查看了JavaAPI和一些常见的第3方库,但我找不到合适的方法来完成String.replaceAll的功能,StringBuilder除外。我知道通过一些工作,它可以为StringBuffer完成,但我不想走这条路,因为StringBuffer比较慢。有谁知道任何第3方实用程序,或者是否有一段快速代码可以实现此功能? 最佳答案 String.replaceAll只是Matcher.replaceAll的一个便捷方法。Matcher是在Java中使用正则表达式的“实际”方式,并且允许许多更复杂的用例。此外,任何可以在String上

go - 引用未定义的标识符 bytes.ReplaceAll

我正在尝试构建一个简单的网络服务器。我想替换所有\n与.我想用bytes为此,因为我的页面主体存储为[]byte.我使用bytes.ReplaceAll()为了这。但它一直说它是对未定义标识符的引用。谁能告诉我为什么?我在在线编译器中尝试了完全相同的行,它工作得很好。我想念图书馆吗?请参阅下面的代码:import("bytes""html/template""io/ioutil""log""net/http""regexp")typePagestruct{TitlestringBody[]byte}funceditHandler(whttp.ResponseWriter,r*http.

regex - 如何使用 Regexp 包 ReplaceAll 函数替换 Go 中的字符?

我不熟悉类似C的语法,想编写代码来查找和替换源字符串中的所有“A”到“B”,比如使用Regexp包ReplaceAll或ReplaceAllString函数的“ABBA”?如何设置类型Regexp、src和repl?这是ReplaceAllcodesnippet来自Go文档://ReplaceAllreturnsacopyofsrcinwhichallmatchesfortheRegexp//havebeenreplacedbyrepl.Nosupportisprovidedforexpressions//(e.g.\1or$1)inthereplacementtext.func(re

regex - Go:一次通过正则表达式 FindAll 和 ReplaceAll

我正在解析网页以获取标签内的一些值,但我对标签不感兴趣,只对内容感兴趣。我正在使用regexp.FindAll获取所有匹配的表达式(包括标签),然后使用ReplaceAll替换每个子表达式,删除标签。当然,两次运行正则表达式会花费双倍的时间,我想避免这种情况。有没有办法同时应用这两个函数,或者等效的正则表达式?当然,我可以创建一个函数来删除标签,但在某些情况下可能会更复杂,因为标签长度可变(如),而正则表达式可以解决这个问题。此处是我的代码的一个简单示例(它不会在Playground上运行):http://play.golang.org/p/uGKjzmylSYfuncmain(){r

java - java中的字符串replaceAll ("¾")

我的java代码中有非常奇怪的错误,无法找出问题所在。假设我有这个代码:privatevoidtest(){Stringtest1=replace("1.25");Stringtest2=replace("1.5");Stringtest3=replace("1.75");}privateStringreplace(Strings){s=s.replaceAll(".25","¼");s=s.replaceAll(".5","½");s=s.replaceAll(".75","¾");returns;}那么结果将是:test1="¼"test2="½"test3="½"????????

java - String 的 replaceAll() 方法和转义字符

线System.out.println("\\");打印一个反斜杠(\)。和System.out.println("\\\\");打印双反斜杠(\\)。明白了!但是为什么在下面的代码中:classReplaceTest{publicstaticvoidmain(String[]args){Strings="hello.world";s=s.replaceAll("\\.","\\\\");System.out.println(s);}}是输出:hello\world而不是hello\\world毕竟,replaceAll()方法是将点(\\.)替换为(\\\\)。有人可以解释一下吗?

Java Regex - 使用 String 的 replaceAll 方法替换换行符

我有一个字符串,想简单地将其中的所有换行符替换为字符串"--linebreak--"。写就够了:string=string.replaceAll("\n","--linebreak--");我对它的正则表达式部分感到困惑。换行符需要两个斜杠吗?这够好吗? 最佳答案 不要使用正则表达式!。你只需要一个纯文本匹配来替换"\n".使用replace()用另一个替换文字字符串:string=string.replace("\n","--linebreak--");请注意,replace()仍然替换all次出现,replaceAll()也是如

Java 正则表达式 replaceAll 多行

我对多行字符串的replaceAll有疑问:Stringregex="\\s*/\\*.*\\*/";StringtestWorks="/**thisshouldbereplaced**/justtext";StringtestIllegal="/**thisshouldbereplaced\n**/justtext";testWorks.replaceAll(regex,"x");testIllegal.replaceAll(regex,"x");以上适用于testWorks,但不适用于testIllegal!?为什么会这样,我该如何克服?我需要替换像注释/*...*/这样跨越多行的