我想像下面一样更改字符串。但我无法找到确切的正则表达式模式。
字符串如下:
Stack Overflow(1234)
堆栈交换(12)
我想要的是继续
Stack Overflow
Stack Exchange
我正在使用Notepad ++,UltraEdit等。此外,尝试使用sed命令也非常有用。
谢谢大家
答案 0 :(得分:1)
不了解Notepad ++,但使用sed这是一个简单的命令:
sed -i.bak 's/ *(.*$//' file
-i
用于内联编辑(它会保存转换后的文件,原件保存为file.bak
)
答案 1 :(得分:1)
尝试使用此查找:
\s+\([^)]+\)
并且一无所获。
\s+
匹配空格。
\(
匹配左括号。
[^)]+
匹配除右括号外的任何字符。
)
匹配右括号。
[(*)]
将匹配(
,*
或)
中的任何一个,因为它们属于字符类。
您也可以使用\s+\(.*?\)
,但它不如上面的正则表达式安全。在正则表达式中,点是通配符,括号用于捕获;这就是为什么我不得不用反斜杠逃脱它们。你不需要在一个字符类中转义它们,例如,你可以使用它:\s+[(].*?[)]
虽然它有点长!
答案 2 :(得分:0)
替换( Ctrl + H ):
^(.+?)\s*\(\d+\)$
人:
$1
这是它的工作原理:
第1组中的所有内容都被保留,其余部分被删除。
答案 3 :(得分:0)
使用awk
即可:
awk '{sub(/ \(.+\)/,x)}1' file