问题描述
我一生中无法解决如何否定一切,但我想用REGEX捕获的东西却全部消失。
我和[^(\ d {4}-\ d {3}-\ d {3}]亲近
但是在powershell中使用以下输入进行替换: 1234-567-899 ABC 1W(23W)蓝色自行车30套件
我知道了:1234-567-8991(2330
代替1234-567-899
解决方法
您还可以使用正则表达式-replace
删除除您要保留的内容以外的所有内容。
在您的示例中
"1234-567-899 ABC 1W(23W) BLUE BIKE30 KIT" -replace '^([-\d]+).*','$1'
将返回1234-567-899
请尝试使用(?:^\d{4}-\d{3}-\d{3})(.*)$
要匹配字符串开头<4-DIGITS>-<3-DIGITS>-<3-DIGITS>
模式之后的任何文本,您可以使用
(?<=^\d{4}-\d{3}-\d{3}).*
请参见regex demo。详细信息:
-
(?<=^\d{4}-\d{3}-\d{3})
-向后正向匹配,该位置与紧随其后的位置匹配-
^
-字符串的开头 -
\d{4}
-四位数 -
-
-连字符 -
\d{3}-\d{3}
-三位数,-
,三位数
-
-
.*
-除换行符之外的任意0个或多个字符,并且尽可能多