我试图在字符串的引号中找到所有出现的等号
如果我的输入字符串是:
anything='', bob2='age=24, sex=M', dilan=24, noble1='yellow'
我希望找到我的角色如下
anything='', bob2='age=24, sex=M', dilan=24, nobel1=24
^ ^
然后将其替换为
anything='', bob2='age~24, sex~M', dilan=24, nobel1=24
^ ^
我试着找出下面发生的一切
'[^',].+?'
但那没用。
3条答案
按热度按时间4uqofj5v1#
仅仅用regex实现您的需求是相当困难的。
我想逐字符迭代字符串来实现它。
请检查下面的代码。我已经把评论放进去了。我使用的是java,但是你可以使用它里面的算法。
qaxu7uf22#
您可以使用组对regex执行此操作。
请尝试以下代码:
然后,将第1组和第3组替换为
~
,保持第二组完整:~$2~
演示:https://regex101.com/r/qxr9ty/1更新
您可以首先使用@maverick\u mrt建议的负lookback,然后通过添加
|
例如cat1|cat2
```(?<!app|policy_name|dvc_host|sender|sal)=
hgc7kmma3#
试试这个:
替换为:
~
breakdown:它将查找任何“=”,并查看它是否在param[\d+]之前。。如果前面没有param\d+,则它将捕获=符号。
将替换为~
解释