替换除匹配字符串JS Regex之外的所有内容
Replace everything except the matched string - JS Regex
Java Script中的另一个"否定匹配"/"匹配除外的所有内容"问题。
所以我想做的是:
我有一个巨大的文本文件,我想从文件中删除除用户名/密码行之外的所有内容。以下是文本中的示例部分:
<property name="password">QWERTY</property>
....lots of similar tags......
<property name="username">Hello</property>
<property name="passive">1</property>
<property name="password">Test Password</property>
<property name="scheme">smb</property>
<property name="timeout">10000</property>
<property name="username">RANDOM USER</property>
....lots of similar tags......
<property name="username">Sid</property>
我想删除不是密码或用户名的每一行。
我尝试了以下替换功能,至少从密码开始,但似乎不起作用:
incomingString = incomingString.replace(/['W'w]*?(?=<property name="password">['W'w]*?</property).*?/g,"");
回过头来看,我可以理解正则表达式有太多的问题,所以我希望知道一个有效的正则表达式,它可以帮助我删除前面提到的文本中的所有行,并留给我
<property name="password">QWERTY</property>
<property name="username">Hello</property>
<property name="password">Test Password</property>
<property name="username">RANDOM USER</property>
<property name="username">Sid</property>
PS:重要的是,他们在文件中的订单应该保持
我在SO上讨论了一些关于JavaScript正则表达式中这个无休止问题的问题(this和lookbehinds),但答案非常具体。
如有任何帮助,我们将不胜感激。
谢谢。
您可以将此正则表达式用于String#match
调用:
/<property[^>]*name="(username|password)[^>]*>[^<]*</property>/gi
RegEx演示
尽管我仍然认为您最好在这里使用XML解析器,但这应该解决一行问题:
<property[^>]*name="(username|password)".*?</property>
http://regex101.com/r/oM7aD2/1
如果匹配文字<property
,后面跟着任意数量的非文字>
的字符(如果行的第一个标记不是username
或password
,则无法进行匹配),则其余部分与@anubhava的相同(尽管我可以随意添加第二个文字"
,以防遇到其他以username
或password
为前缀的属性,例如password_expires
)
相关文章:
- 制作一个regex来验证只有一个数字的字符串
- Datatables查询url字符串:需要regex来修复url解析
- 用于查找子字符串的Regex
- Regex,用于从字符串中筛选关键字
- RegEx只匹配JSON字符串中最里面的数组
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- RegEx以匹配字符串中的两个或多个名称
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- JavaScript Regex,用于由特定字符串包围的数字和空格
- regex:字符串中的最小数字总数
- 返回javascript中regex字符串的一部分
- Javascript RegEx - 字符串异常的开始和结束
- 将JavaScript Regex字符串转换为PHP Regex字符串
- Javascript用随机数替换Regex-字符串
- Javascript Regex字符串替换不替换
- Javascript Regex:字符串中的9或12位数字
- JavaScript RegEx字符串结尾不起作用
- regex字符串显示一个错误
- 带有空格的Regex字符串
- RegEx字符串拆分器