我有以下字符串:
名:ABC;
用户名:XYZ;
我想从字符串中删除名称值ABC
,因此我使用以下正则表达式:
((?<=name))(.*?)(?=;)
它成功选择name
值,但问题是它还会选择username
值。
我只想删除name
值不是username
值
我怎么能这样做?
解:
**这个问题的Avinash
和Bohemian
答案都是正确的。
通过Avinash
回答,我们可以将包含name
的所有字词排除为子字符串,并使用Bohemian
答案排除特定字词。
答案 0 :(得分:2)
在\b
之前使用字边界name
。
(?<=\bname:)(.*?)(?=;)
或
(?<=\bname:)[^;]*
答案 1 :(得分:1)
修改你的正则表达式,你可以结合两个看后面,一个正面,一个负面:
(?<!username)(?<=name).*?(?=;)
还要注意删除不必要的括号。
Avinash的回答可能就是我在这种情况下会使用的,但我认为如果\b
对未来访问者不起作用,我会以这种方式显示,例如名称以name
结尾的所有数据(streetname
,cityname
等)除了 username
。