【发布时间】:2017-06-20 12:36:00
【问题描述】:
我已经尝试解决这个问题很长时间了,但我就是做不到。
它可以是任何字符串,但这是一个示例:
"\This string \contains some\ backslashes\"
我需要制作一个正则表达式,我可以用它来检查字符串是否包含单个反斜杠。
然后我需要将给定的字符串转换为(我可以进行转换):
"\\This string \\contains some\\ backslashes\\"
然后使用正则表达式检查字符串是否不再包含单个反斜杠。
顺便说一句,我不必为此使用正则表达式,我只需要能够以某种方式检查字符串。
【问题讨论】:
-
我相信你不能这样做,因为这些转义字符是由编译器处理的,并且在程序运行时已经消失了。 Afaik,您无法检测到源代码中字符串文字的“原始”形式是什么。
-
看this demo。它可能会给您一些想法或澄清我们对您的问题的(错误)理解。
-
我真的不知道如何用另一种方式来表述这个问题。我只需要一个正则表达式来检查一个字符串是否包含单个反斜杠。到目前为止,我想出的是一个看起来像这样的正则表达式: [^\\]\\[^\\] 但它没有找到开始和结束字符串的反斜杠。
-
好的,试试
.replaceAll("""(?<!\\)\\(?!\\)""", """\\\\""")。那对你有用吗?还是您只需要(?<!\\)\\(?!\\)正则表达式进行任何其他检查? -
另外,如果你需要检查一个字符串是否包含一个反斜杠,你可以使用类似ideone.com/P1SXII的东西。