[英]RegEx to replace entire string with first two values
我试图想出一个正则表达式来用前两个值替换整个字符串。 例子:
整根琴弦:AO SMITH 100108283 4500W/240V 旋入式元件,11"
前两个值:AO SMITH
整根弦:BRA14X18HEBU / P11-042 / 310-470NL BRASS 1/4 x 1/8 HEX BUSHING
前两个值:BRA14X18HEBU / P11-042
整根弦:两孔 PIPE 表带 4" 008004EG 72E 4
前两个值:TWO-HOLE PIPE
需要注意的是,我想保留任何类型的特殊字符而不是计算它们,例如“/”和“-”。 我编写的当前代码没有,而是将新值完全留空。 只有上面的第一个例子有效。
这是我到目前为止所得到的:
匹配值:
^(\w+) +(\w+).+$
新价值:
$1 $2
一种选择是使用单个捕获组并在替换中使用它。
^(\w+(?:-\w+)?(?: +\/)? +\w+(?:-\w+)?).+
模式匹配:
^
字符串开头(
捕获组 1
\w+(?:-\w+)?
将 1+ 个单词字符与可选部分匹配以匹配-
和 1+ 个单词字符(?: +\/)?
可选匹配/
+\w+(?:-\w+)?
将 1+ 个单词字符与可选部分匹配以匹配-
和 1+ 个单词字符)
关闭第 1 组.+
匹配任何字符的 1+ 次(该行的 rest) 如果可以有超过 1 个连字符,您可以使用*
代替?
Output
AO SMITH
BRA14X18HEBU / P11-042
TWO-HOLE PIPE
更广泛的匹配可能是匹配单词之间的非单词字符
^(\w+(?:-\w+)*[\W\r\n]+\w+(?:-\w+)*).+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.