我在C#程序中有以下正则表达式,并且难以理解它:
(?<=#)[^#]+(?=#)
Run Code Online (Sandbox Code Playgroud)
我会把它分解为我认为我理解的内容:
(?<=#) a group, matching a hash. what's `?<=`?
[^#]+ one or more non-hashes (used to achieve non-greediness)
(?=#) another group, matching a hash. what's the `?=`?
Run Code Online (Sandbox Code Playgroud)
所以这个问题我已经是?<=和?<组成部分.从阅读MSDN,?<name>用于命名组,但在这种情况下,尖括号永远不会关闭.
我?=在文档中找不到,搜索它真的很难,因为搜索引擎大多会忽略那些特殊的字符.
我对Java中的字符串有疑问.比方说,我有一个像这样的字符串:
String str = "The . startup trace ?state is info?";
Run Code Online (Sandbox Code Playgroud)
因为字符串包含特殊字符,"?"所以我需要"\?"根据我的要求替换字符串.如何用特殊字符替换"\"?我尝试了以下方式.
str.replace("?","\?");
Run Code Online (Sandbox Code Playgroud)
但它给出了编译错误.然后我尝试了以下内容:
str.replace("?","\\?");
Run Code Online (Sandbox Code Playgroud)
当我这样做时,它取代了特殊字符 "\\".但是当我打印字符串时,它会打印出单斜杠.我认为它只采用单斜杠,但是当我调试时,我发现该变量正在进行中"\\".
任何人都可以建议如何用单斜杠("\")替换特殊字符?
char文字'\"'和文字之间有什么区别'"'吗?