我试图反转这个表达式:([0-9]{14} )
,
所以所有14位数字后跟一个空格。
我到处寻找,似乎最好的方法是使用否定前瞻。
但是,当我尝试将q(?!u)
应用于我的案例>> (?!([0-9]{14} ))
,它不起作用。
我做错了什么?
我会提出任何建议,谢谢。
重点是删除所有不是14位数文本块的内容,同时保留这些14位数字块。
答案 0 :(得分:2)
如果您要删除14位以外的文字,后跟空格,请使用(\b\d{14} )|.
并替换为$1
。
模式匹配并且捕获(我们可以参考用替换模式中的backreference捕获的文本)14位数字块然后将空格作为整个单词归因于{ {3}}。如果找不到此文本,则除了换行符之外的任何字符都与.
匹配且未被捕获(我们无法通过反向引用来引用它)。
因此,当我们用反向引用$1
替换时,我们只是用空格恢复匹配的14位数块。
要获得更清晰的视图,请删除所有空行:Edit
> Line Operations
> Remove Empty Lines
。
答案 1 :(得分:0)
您可以使用此否定前瞻:
</question>
</Turn>
^(?!.*[0-9]{14} )
以在输入中的任何位置禁用此内容也很重要