相关疑难解决方法(0)

正则表达式'(?<=#)[^#] +(?=#)'如何工作?

我在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>用于命名组,但在这种情况下,尖括号永远不会关闭.

?=在文档中找不到,搜索它真的很难,因为搜索引擎大多会忽略那些特殊的字符.

regex lookahead lookbehind lookaround

20
推荐指数
1
解决办法
3521
查看次数

如何用单斜杠替换特殊字符

我对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)

当我这样做时,它取代了特殊字符 "\\".但是当我打印字符串时,它会打印出单斜杠.我认为它只采用单斜杠,但是当我调试时,我发现该变量正在进行中"\\".

任何人都可以建议如何用单斜杠("\")替换特殊字符?

java

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

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

标签 统计

java ×2

char ×1

escaping ×1

lookahead ×1

lookaround ×1

lookbehind ×1

regex ×1

string ×1