相关疑难解决方法(0)

Java Regex中的正斜杠

我无法弄清楚为什么下面的代码没有按预期运行

"Hello/You/There".replaceAll("/", "\\/");
Run Code Online (Sandbox Code Playgroud)
  • 预期产量: Hello\/You\/There
  • 实际产量: Hello/You/There

我需要向前逃避斜线吗?我不这么认为,但我也违背了我的意愿尝试了以下......没有用

"Hello/You/There".replaceAll("\\/", "\\/");
Run Code Online (Sandbox Code Playgroud)

最后,我意识到我不需要正则表达式,我只能使用以下内容,它不会创建正则表达式

"Hello/You/There".replace("/", "\\/");
Run Code Online (Sandbox Code Playgroud)

但是,我仍然想知道为什么我的第一个例子不起作用.

java regex

49
推荐指数
1
解决办法
12万
查看次数

为什么正则表达式构造函数需要双重转义?

在下面的正则表达式中,\s表示空格字符.我想象正则表达式解析器,正在通过字符串看到\并知道下一个字符是特殊的.

但事实并非如此,因为需要双重逃脱.

为什么是这样?

var res = new RegExp('(\\s|^)' + foo).test(moo);
Run Code Online (Sandbox Code Playgroud)

是否有一个具体的例子说明单个逃避如何被误解为其他东西?

javascript regex

40
推荐指数
5
解决办法
1万
查看次数

用双反斜杠替换单反斜杠需要8个反斜杠?

这是"这里到底发生了什么"的问题.我实际上并不需要解决方案.

我不得不用双反斜杠替换String中的所有单个反斜杠.这就是我最终做的......

strRootDirectory = strRootDirectory.replaceAll("\\\\", "\\\\\\\\");
Run Code Online (Sandbox Code Playgroud)

...其中strRootDirectory是上面的java.lang.String.

现在,我理解第一个参数的四个反斜杠:正则表达式需要两个反斜杠以表示单个字面反斜杠,并且java希望它们加倍.没关系.

但是,第二个参数的八个反斜杠是怎么回事?是不是替换字符串应该是文字(非正则表达式,我的意思)字符串?我希望在第二个参数中需要四个反斜杠,以表示两个反斜杠.

java regex string

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

字符串索引超出范围并全部替换

如何将<>包围的mapDir替换为某个字符串?

  String mapDir = "D:\\mapping\\specialists\\ts_gpc\\";
  String test = "foo: <mapDir> -bar";
  println(test.replaceAll("<mapDir>", mapDir));
Run Code Online (Sandbox Code Playgroud)

上面给了我一个StringIndexOutOfBoundsException。

下面的代码适合我,但是我认为纯java也必须工作。

static String replaceWord(String original, String find, String replacement) {
    int i = original.indexOf(find);
    if (i < 0) {
        return original;  // return original if 'find' is not in it.
    }

    String partBefore = original.substring(0, i);
    String partAfter  = original.substring(i + find.length());

    return partBefore + replacement + partAfter;
}
Run Code Online (Sandbox Code Playgroud)

java replace

3
推荐指数
1
解决办法
952
查看次数

Java:单反斜杠字符串 - 为什么“\\”非法?

我知道反斜杠用于字符转义,因此我必须使用其中两个反斜杠来编写单个反斜杠。

但为什么这不能编译呢?

"\\" => 无法编译

但是这个:

“\\\\”=>“\”

哪个\转义了什么?

先感谢您!

java regex escaping backslash

-2
推荐指数
1
解决办法
8524
查看次数

标签 统计

java ×4

regex ×4

backslash ×1

escaping ×1

javascript ×1

replace ×1

string ×1